1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量变成全局变量. 2. 不存在变量提升 3. 暂时性死区 if(true){ let a=10; } console.log(a); // a is not defined //防止循环变量变成全局变量 for(var i=0;i<2;i++){ } console.log(i); // i=2(只有
话说,解构无处不在啊,鄙人自从用了vue写项目以来,总是遇到各路大神莫名其妙的写法,然并未出任何错,查之,然解构也,呜呼哀哉,进而习之. 解构(Destructuring):是将一个数据结构分解为更小的部分的过程.ES6中,从数组和对象中提取值,对变量进行赋值. 解构有什么用处呢?可以大大的简化数组或者对象里面的元素的赋值语句. 数组解构,数组本身并没有发生任何的改变,解构是对新的变量(可能是对象同名属性)赋值. //变量的声明 let [a,b,c] = [1,2,3];//嵌套解构 let
es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr = [1,2,3,4,5]; var a = arr[0]; var b = arr[1]; var c = arr[3]; //或者 var obj = { name: 'gary', age: 20 } var a = obj.name; var b = obj.age; //或者 //等等
let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题. const是对let的一个增强,它能阻止对一个变量再次赋值. 块作用域 当用let声明一个变量,它使用的是词法作用域或块作用域. (1)不同于使用 var声明的变量那样可以在包含它们的函数外访问,块作用域变量在包含它们的块或for循环之外是不能访问的. function f(input: boolean) { let a = ; if (input) { // Still okay to referen