一、let
用法:声明一个变量
特点:
(1)不定义不能使用
(2)在同一作用域不可以重复声明同一个变量
(3)默认不会绑定在window身上
(4)拥有块级作用域
(5)预解析不会变成undefined
二、const
用法:声明一个只读的变量(也就是常量)
特点:
(1)不定义不能使用
(2)在同一作用域不可以重复声明同一个变量
(3)默认不会绑定在window身上
(4)拥有块级作用域
(5)预解析不会变成undefined
(6)声明变量的同时必须定义初始值
(7)声明的是简单的数据类型的情况下不可以更改值
三、symbol
介绍:对象的属性名容易产生命名冲突,为保证键名的唯一性,故es6引出symbol这种新的原始数据类型确保创建的每个变量都是独一无二的
特点:symbol类型的数据是类似字符串的数据类型,由于symbol函数返回的值是原始类型的数据,不是对象,故symbol函数前不能使用new命令。
用法:定义对象的唯一属性名
(1)第一种方法
let name=Symbol()
let a={}
a[name]='Nick'
(2)第二种方法
let a={
[name]:'Nick',
}
(3)第三种方法
let a={}
Object.defineProperty(a,name,{value:'Nick'})
定义常量:const name=Symbol("Nick");
四、解构赋值(深入原理讲解赋值及其法)
介绍:解构赋值可以理解为赋值操作的语法糖,它是针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。代码书写上言简意赅,语义明确,也方便了对象数据的读取操作。
实质:ES6中只要某种数据有可以循环迭代,都可以进行数组的解构赋值。
对数组进行解构:
(1)按照位置进行解构
(2)定义变量如果有哪个值不想取,可以跳过用 , 使用空格
(3)定义变量可以使用默认值
(4)可以使用剩余值 ...拓展运算符 必须放在最后一位
(5)可以嵌套
对对象进行解构:
(1)按照属性名进行解构
(2)可以取其他的名字(a:newA)
(3)定义变量可以使用默认值
(4)可以使用剩余值 ...拓展运算符 必须放在最后一位
(5)可以嵌套