let 变量 和 const 常量
let 用于声明变量
特性:
1. let 不能重复声明变量,var 可以重复声明变量;
2. 块级作用域,es5中存在全局作用域、函数作用域、eval作用域;es6中引入了块级作用域,let声明的变量在块级作用域 { } 内有效
3. et声明的变量不存在var的变量提升问题
const 用于声明常量
注意事项:
1. 一定要赋初始值
2. 一般常量使用大写(属于编程规范)
3. 常量值不能修改
4. 存在块级作用域
5. 对于数组和对象的元素修改,不算做对常量的修改,不会报错(因为引用数据类型保存的是内存地址,所以声明数组和对象时可以使用const声明,以此保证其保存的内存地址不变)
解构赋值
对象
// 将下列所以属性输出
let obj={
nickname:'小陈',
age:20,
gender:'男'
}
// 解构
let { nickname, age, gender } = obj
console.log(nickname, age, gender)
// 输出结果为 小陈 20 男
深层对象
// 将下列所以属性输出
let obj={
nickname:'小陈',
age:20,
gender:'男'
doing:{
morning:'睡觉',
evening:'睡觉'
}
}
// 解构
let { nickname, doing:{ morning } } = obj
console.log( nickname, morning )
// 输出结果为 小陈 睡觉
// 也可以修改名字
let { nickname:myname, doing:{ morning } } = obj
console.log( myname, morning )
// 输出结果为 小陈 睡觉
数组
let arr = [1,2,3]
let [ a, b, c ] = arr
console.log( a, b, c )
// 输出结果为 1,2,3
乱序解构数组
// 利用索引乱序解构
let arr = [1,2,3]
let [ 2:a, 0:b, 1:c ] = arr
console.log( a, b, c )
// 输出结果为 3,1,2