ES6--let
来源:互联网 发布:c语言visit函数 编辑:程序博客网 时间:2024/05/22 07:49
1.基本概念
let命令:用来声明一个变量,和var非常类似
2.用let声明变量的注意事项
1)使用let声明的变量,该变量只在命令所在的代码块内有效
{let a=1;var b=2;console.log(a)//正确}console.log(a)//报错console.log(b)//正确
2)使用let命令声明的变量在预解析的时候不会被提升
因为存在预解析,所以a可以被访问到,是undefined
console.log(a);//undefinedvar a=1;
下面则会直接报错
console.log(a);//报错let a=1;
typeod c;//报错let c=10;
let f=10;function fn(){ f=7; let f=2;//暂时性死区}fn();//报错
3)let不允许在同一个作用域下声明已经存在的变量,以下都会报错
var a=1;let a;
let b=1;let b=2;
4.let在for循环中的应用
1)看一道常见的面试题
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><script>var btns=document.querySelectorAll("button");for(var i=0;i<btns.length;i++){ btns[i].onclick=function(){ console.log(i); }}</script>
执行上面代码,发现无论点击哪个按钮,最终都会打印5,可以做下面的修改
for(var i=0;i<btns.length;i++){ btns[i].index=i; btns[i].onclick=function(){ console.log(this.index); }}
也可以使用闭包的形式
for(var i=0;i<btns.length;i++){ (function(i){ btns[i].onclick=function(){ console.log(i); } })(i)}
现在可以使用let可以直接解决这个问题
for(let i=0;i<btns.length;i++){ btns[i].onclick=function(){ console.log(i); }}
2)在循环语句之内是一个父作用域,在循环体之中是一个子作用域
for(let i=0;i<3;i++){ let i=10; console.log(i);//10说明不收外面for循环的影响}console.log(i);//报错,未被定义。说明for循环只在循环内起作用
阅读全文
1 0
- ES6 let
- ES6 --- let
- ES6--let
- 浅谈ES6 let命令
- ES6之let
- 【ES6】let和const
- ES6——let
- ES6-let篇
- ES6语法中的let
- es6 箭頭函數 let, const
- 详解ES6中的let
- ES6中的let
- es6---(let const)
- js es6 let命令
- es6 let和const
- ES6---let与const
- ES6之let,const
- ES6-let,const
- 75. Sort Colors(第三周)
- 笔试题整理
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛: G. Finding the Radius for an Inserted Circle(笛卡尔定理)
- 数据库概念及常用关系型数据库
- android设计实现窗体启动时,显示一个水平进度条,当进行完成后,隐藏该进度条,并显示一张图片
- ES6--let
- pythn 冒泡排序
- java调用tensorflow
- Paint的基本使用
- windows,64位下,Python中安装numpy、matplotlib和scipy
- mongodb安装
- 20170924
- win10 vs2010安装教程(超详细,附下载链接)
- 信号完整性分析方法-1-信号的串扰