ES6 新增了let命令,用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。

在ES6之前,我们都是用var来声明变量,而且JS只有函数作用域和全局作用域,没有块级作用域,所以{}限定不了var声明变量的访问范围。ES6新增的let,可以声明块级作用域的变量。

let非常适合用于 for循环内部的块级作用域。JS中的for循环体比较特殊,每次执行都是一个全新的独立的块作用域,用let声明的变量传入到 for循环体的作用域后,不会发生改变,不受外界的影响。

let声明的变量,不存在变量提升。而且要求必须 等let声明语句执行完之后,变量才能使用,不然会报Uncaught ReferenceError错误。

let不允许在相同作用域内,重复声明同一个变量。否则报错:Uncaught SyntaxError: Identifier 'XXX' has already been declared

JS中的let和var的区别相关推荐

  1. html offsetwidth 字符串宽度,基于js中style.width与offsetWidth的区别(详解)

    作为一个初学者,经常会遇到在获取某一元素的宽度(高度.top值...)时,到底是用 style.width还是offsetWidth的疑惑. 1. 当样式写在行内的时候,如 时,用 style.wid ...

  2. js中定义变量加var和不加var的区别

    这个问题其实我在面试的时候有被问到过,当时我记得我回答的很模糊,面试官看到我好像不太清楚,又问我是不是可以不加var定义变量... 正好昨天做项目的时候想到这个问题,觉得这种细节上的问题才是拉开差距的 ...

  3. js中的target与currentTarget的区别转

    关于js中target与currentTarget的区别的关键在于他们所处在的事件流的阶段是不一样的,target处于事件流的目标阶段,currentTarget处理事件流的捕获.处于目标阶段和冒泡阶 ...

  4. js中构造函数与普通函数的区别

    构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++.Java.PHP等等.与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总 ...

  5. js中关于length与size的区别

    length与size的区别 用了很长时间的length的一直没考虑过其与size的区别,今天同事问起,特意查找资料,将两者的相同点与共同点列出来. 相同点:在jQuery中用于返回元素的个数,siz ...

  6. php中的foreach和js中的foreach的用法和区别

    PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...

  7. js中(function(){}()),(function(){})(),$(function(){});之间的区别

    1. (function(){}())与(function(){})() 这两种写法,都是一种立即执行函数的写法,即IIFE (Immediately Invoked Function Express ...

  8. node.js中exports与module.exports的区别分析

    前言 关于Node.js中的exports和module.exports,很多时候都比较容易让人混淆,弄不清楚两者间的区别.那么我们就从头开始理清这两者之间的关系. 来源 在开发Node.js应用的时 ...

  9. js中的let和var

    在ES6中,应该尽量使用const和let来声明变量,而尽量避免使用var. var的缺点是它的作用域比较混乱,使用let能够保证清晰的作用域. 下面看一个小例子. var x = 3; if(x== ...

最新文章

  1. python生成器函数_【python】生成器和生成器函数
  2. Spring Cloud【Finchley】实战-06使用/actuator/bus-refresh端点手动刷新配置 + 使用Spring Cloud Bus自动更新配置
  3. 架构设计 | 基于消息中间件,图解柔性事务一致性
  4. (单元测试)JavaBeans的技巧
  5. matlab写字,Matlab实现鼠标写字代码
  6. Vijos P1784 数字统计【进制】
  7. 拓端tecdat|时间序列建模三部曲
  8. 中级软件设计师JAVA
  9. 关于网站版权声明(Copyright)的格式和写法
  10. 多重共线性的产生原因、判别、检验、解决方法
  11. 银行会计记账方法的种类
  12. 周测作业五(apache的安装与配置)
  13. DenseNet阅读心得体会
  14. Redis的基本使用
  15. 黄金思维圈,看透问题本质的利器,成功者必备工具
  16. Qt 实现 HMAC_SHA1 哈希算法
  17. 矢量数据shp七个文件介绍_读取矢量数据
  18. 计算机英语感想1500,求助:求新概念计算机英语英文读书报告1500字,谢~
  19. 软件测试培训出来真的很难找到工作嘛?
  20. pandas 读CSV时间转换问题的终极解决

热门文章

  1. Lucene-Analyzer
  2. 浅谈图片蒙版效果-webkit-mask
  3. 【Transact-SQL】SQL Server自动把left join自动转化为inner join、以及关联时的数据重复问题...
  4. C#线程从陌生到熟悉(4)
  5. 【转载】闲话操作系统(二)
  6. python详细下载安装教程-Python下载并安装图形教程[超级详细]
  7. 单独学python能干嘛-学 Python 都用来干嘛的?
  8. python四大软件-传智播客解析Python之移动端页面适配四大方式
  9. python与c语言在语法上的区别-C语言和Python编程先学习哪个
  10. python怎么安装第三方库-vs2017怎么安装python第三方包