let特性:
1.变量不能重复声明
2.块级作用域 (只在代码块里面有效{})
3.不存在变量提升
4.不影响作用域链
const:
1.一定要赋初始值
2.一般常量使用大写
3.常量值不能修改
4.块级作用域
5.对于数组和对象的元素修改,不算做对常量的修改,不会报错
解构赋值
数组结构:const arr=[1,2,3,4]; let [a,b,c,d] = arr;
对象解构:
const obj = {name: '张三', age: 16, fn : function(){}};
let {name,age,fn} = obj; 可以直接拿出对象里面的值使用
Symbol :一种新的原始数据类型,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
特点:
1、值唯一 ,解决命名冲突问题
2、值不能与其他数据进行运算
3、定义的对象属性不能使用for in 遍历
创建Symbol
1. let s = Symbol();
2. let s2= Symbol('你好');
Symbol.for 创建
3. let s3 = Symbol.for('你好');
给对象添加Symbol类型的方法
第一种
let obj = {
name: '狼人杀',
[Symbol('say')]: function(){}
}
第二种
let methods = {fn1: Symbol(),fn2: Symbol() };
obj[methods.up] = function(){};