1. const
说明: const用来声明常量
常量特点:
1. 常量一旦被声明赋值, 就不能再次进行更改
2. 常量也具有块级作用域
3. 常量比变量的运行解析速度快-
示例:
const pai = 3.1415; par += 1; // => 报错, 因为常量被声明赋值之后, 不能进行修改
2. let
说明: let 用于声明变量
-
特点:
- let 声明的变量, 在预解析时, 没有变量提升, 只能先声明再进行赋值:
-
例如:
x = 5; let x; console.log(x); // => 报错, let 声明的变量没有变量提升
- let 具有块级作用域(let 声明的比那里具有块级作用域的限制)
{} 花括号内 就是块级作用域
-
例如 :
{ let a = 5; console.log(a); // => 5 花括号内访问a, 不会报错 } console.log(a); // => 在花括号外 访问a 会报错
- let 不能重复声明同一个变量:
-
例如:
let a; let a = 100; // => 报错, let已经声明了一次变量 a
3. var, let, const 三者区别:
- var 和 let 都能声明变量, 但是 let 更为严谨
- let 的特殊性:
- let 没有变量提升: 这是为了保证程序的逻辑通畅;
- 具有块级作用域: 以此避免变量交叉污染;
- 不能重复的声明同一个变量: 以此来保证变量的唯一性;
- const: const则是用来声明常量, 常量一旦被声明赋值, 就不能被修改;
- let 的特殊性:
4. in
说明: 用来判断对象 是否为 数组的元素/对象的属性;
-
用法: (变量 in 对象)
- 当 in 后面的对象 是数组时, in 前面的变量 指的是数组的索引
- 当 in 后面的对象 是对象时, in 前面的变量 指的是对象的属性
-
示例:
let arr = ['a', 'b', 'c', 'd']; let obj = { name: '王东', age: 18 } console.log( (4 in arr) ); // => false arr长度为4, 不存在索引为4的元素 console.log( ('age' in obj) ); // => true obj中存在 属性名为 age 的属性