主要理解 let 和 const 的作用域问题 let 变量不能重复声明。引用类型的const 可以添加属性和值
let const var 变量声明的区别
1. 作用域的区别
test1 使用全局的 var 变量声明的方式
1 2 3 4 5 6 7
| function testVar() { for (var i = 0; i < 10; i++) { console.log(i); } console.log(i); } testVar();
|
test2 使用块级的作用域 let 变量的声明方式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function testLet() { for (let i = 0; i < 10; i++) { console.log(i) } console.log(i) } testLet(); ``` js 这里可以看出的是 let 只作用在 { } 中的块级作用域。 ----- ### 2. 重复声明变量 test3 重复声明 ``` js var numberVar = 12; var numberVar = 13; console.log(numberVar);
|
这里可以输出的是13 可以看出 number 被重复声明覆盖了 。
1 2 3
| let numberLet = 12; let numberLet = 13; console.log(numberLet);
|
3. const 常量 定义过后的常量就不能修改。
1 2 3 4 5
| const PI = 3.1415926; PI = 123; const PS; console.log(PI); console.log(PS);
|
特性: 当为引用类型的时候。
1 2 3 4 5
| const k = { a: 1 } k.b = 2; console.log(k)
|
对象为引用类型的值,所以能增加成功。