ES6 知识点
变量声明
-
let 关键字
let
关键字用 来声明变量,使let声明的变量有几个特点: 声明的变量有几个特点:- 不允许重复声明
- 块儿级作用域
- 不存在变量提升
- 不影响作用域链
应用 场景:以后声明变量使let
-
const关键字
const
关键字用来声明常量,const
声明有以下特点- 声明必须赋初始值
- 标识符一般为大写
- 不允许重复声明
- 值不允许修改
- 块儿级作用域
注意 : 对象属性修改和数组元素变化不会出发 const
错误
应用 场景:声明对象类型使const
,非对象类型声明选择 let
变量值的解构
数组
const arr = ['张学友','刘德华','郭富城','黎明']
let [zhang ,liu,guo,li] =arr
对象
//对象的简单解构
const lin = {
name:'林志颖',
tags:['车手','歌手','演员']
};
let {name,tags} = lin
//对象的复杂结构
//想使用 对象中对象的某个属性 比如下例中的 songs 中的红豆
let wangfei = {
name: '王菲',
age: 18,
songs: ['红豆', '流年', '传奇'],
history: [
{ name: '窦唯' }, { name: "李亚鹏" }, { name: '谢霆锋' }
]
}
let { songs: [one, two, three], history: [first, second, third] } = wangfei
console.log(one, three, second);//==》红豆 传奇 {name: '李亚鹏'}
模板字符串
// 使用 `` 可${} 添加变量,可随意换行
cosnt str = '123456'
cosnt strs = `这里是&{str}`
console.log(strs)//=》这里是123456
简化对象写法
允许再大括号里面直接写入变量和函数,作为对象的属性和方法
let name = '尚硅谷';
let slogon = '永远追求行业更高标准';
let improve = function () {
console.log('可以提高你的技能');
}
//属性和方法 原来的写法
let atguigu = {
name:name,
slogon:slogon,
improve:improve,
change() {
console.log('可以改变你')
}
};
//================================================
let name = '尚硅谷';
let slogon = '永远追求行业更高标准';
let improve = function () {
console.log('可以提高你的技能');
}
//属性和方法简写
let atguigu = {
name,
slogon,
improve,
change() {
console.log('可以改变你')
}
};
箭头函数
()=>{}
箭头函数的注意点:
- 如果形参只有一个,则小括号可以省略 params=>{........}
- 函数体如果只有一条语句,则花括号可以省略,函数的返回值为该条语句的(p)=>{return p.nane} ==>p=>p.name
执行结果 - 箭头函数this 指向声明时所在作用域下 this 的值
- 箭头函数不能作为构造函数实例化
- 不能使用arguments
补充 arguments ====> 接受函数中所有的实参