标签:命令 ati 解析 script 声明 number ++ operator 变量提升
1.let类似于var用用来定义变量
1)let没有预解析,不存在变量提升
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
2)let定义的变量在其定义之前使用都会报错,称为暂时性死区(TDZ)
var tmp = 123;
if (true) {
tmp = ‘abc‘; // ReferenceError
let tmp;
}
3)不允许重复声明
用let定义的变量名不能重复再定义,如果定义就会报错。
4)块级作用域
for循环类似于一个父级作用域
for(i=0;i<3;i++){let i=‘abc‘;
console.log(i);
}
//输出3次 abc类似于
{
let a=1;
{
let a=2;
console.log(a);//2
}
console.log(a);//1
}
定义完必须有值不能更改。后赋值或重复赋值都会报错。
const
实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动
ES6 第一章 let和const命令 具体参照http://es6.ruanyifeng.com
标签:命令 ati 解析 script 声明 number ++ operator 变量提升
原文地址:https://www.cnblogs.com/zhaoqiusheng/p/11053534.html