ES6-let&const
以下是对 ES6-let&const的学习
ECMAScript是浏览器脚本语言的规范,而我们熟知的JS语言,如JavaScript则是规范的具体实现。
let与var对比(做项目中习惯用let声明变量)
- var声明的变量往往会越狱 (let 是在代码块内有效,var 是在全局范围内有效:)
- let声明的变量有严格局部作用域
1 |
|
- var可以声明多次
- let只能声明一次
1
2
3
4
5
6var m=1;
var m=2;
let n=3;
let n=4;
console.log(m); //2
console.log(n); //Identifier 'n' has already been declared - var 会变量提升
- let 不存在变量提升
变量 b 用 var 声明存在变量提升,所以当脚本开始运行的时候,b 已经存在了,但是还没有赋值,所以会输出 undefined。
变量 a 用 let 声明不存在变量提升,在声明变量 a 之前,a 不存在,所以会报错。1
2
3
4console.log(x); // undefined
var x = 10;
console.log(y); //Cannot access 'y' before initialization
let y = 20;const声明变量 (只读变量)
- 声明之后不允许改变
- 一旦声明必须初始化,否者会报错
1 |
|
const 如何做到变量在声明初始化之后不允许改变的?其实 const 其实保证的不是变量的值不变,而是保证变量指向的内存地址所保存的数据不允许改动
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!