ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变

量,只在let命令所在的代码块内有效。

let  a=3;

let声明的变量只在它所在的代码块有效。

for循环的计数器,很适合使用let命令

var arr=[1,2,3,4,5];

for (let i=0;i<arr.length;i++){}

console.log(i);

运行结果:

程序报错。上面代码的计数器i是由let声明的,只在for循环体内有效。

如果i是由var声明的

var arr=[1,2,3,4,5];

for (var i=0;i<arr.length;i++){}

console.log(i);

最后输出的结果是:5

let声明变量的特性有以下几点:

1.不提升变量

先来看一组变量的声明

console.log(a);

console.log(b);

var a=2;

let b=2;

同样的2个未定义就使用的变量,但结果取不一样

因为变量a用var命令声明,会发生变量提升,即脚本开始运行时,变量a已经存在了,但是没有值,所以会输出undefined。变量b用let命令声明,不会发生变量提升。这表示在声明它之前,变量b是不存在的,这时如果用到它,就会抛出一个错误。

转载于:https://my.oschina.net/u/2971691/blog/892535

最新文章

  1. 今天不谈技术,说说一些常用的软件~By 逆天
  2. Linux(RHEL6.0)下安装GCC
  3. 我的第一个hadoop程序
  4. JS数组操作示意图(shift,unshift,pop,push)
  5. 手机端web学习基础--from慕课网
  6. 【python】继承时注意事项
  7. routeProvider
  8. Tomcat修改网址旁边的小图标
  9. 硬盘结构介绍--mbr及分区
  10. visual studio 2015提示IE10未安装
  11. MyEclipse修改servlet模版
  12. mysql 初识之日志文件篇
  13. html中的a标签的target属性的四个值的区别?
  14. LeetCode-391. 完美矩形(使用C语言编译,详解)
  15. 一个蒟蒻对FFT的理解(蒟蒻也能看懂的FFT)
  16. Python中Json对象处理的jsonpath-rw
  17. “浅入浅出”函数防抖(debounce)与节流(throttle)
  18. ECS分区挂载数据盘
  19. mysql5.5 报Can&#39;t open and lock privilege tables: Table &#39;mysql.host&#39; doesn&#39;t exist
  20. rownum与row_number() OVER (PARTITION BY COL1 ORDER BY COL2)

热门文章

  1. 剑指Offer系列之题1~题5
  2. Java第十八天,可变参数
  3. windows VMware 安装mac 系统
  4. C语言折半查找法练习题冒泡排序
  5. JavaScript实现简单的弹幕效果实例分析
  6. CSS也能计算:calc
  7. 从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑
  8. Daily Scrum 1/18/2016
  9. 安全测试-WEB安全渗透测试基础知识(四)
  10. C - Sigma Function LightOJ - 1336 (数论)