【ES6语法】
文章图片
一、CONST
- 不允许重复声明
- 不属于顶层对象window
- 不存在变量提升
- 暂时性死区(先声明后使用)
- 块级作用域(块级作用域内有用)
三、 解构赋值
const obj = {
name: '张三',
age: 30,
hobby: ['篮球','足球'],
school: {
name: '北大附中',
city: '北京'
}
}const {
name: aliaName, // 别名
age,
hobby,
school: {
name,
city
}
} = obj
console.log(aliaName,age,hobby,name,city)
打印: 张三,30,['篮球','足球'],北大附中,北京
在项目中使用解构赋值
// 当作函数参数传递
方式一:
const sum = ([a, b]) => {
return a+b;
// 5
}
sum([2,3])// 方式二:
const foo = ({name, age}) => {
console.log(name, age);
// 张三, 30
}
foo({
name: '张三',
age: 30
})
// 两个值交换
let a = 1;
let b = 2;
[b,a] = [a,b]
// Ajax请求(json格式)
json:
{
"name": "张三",
"age": 30
}axios.get('./data.json', (res) => {
console.log(res);
//{..., data:{name:张三',age:30}, ...}
})
axios.get('./data.json', ({data}) => {
console.log(data);
// {name:张三',age:30}
})
axios.get('./data.json', ({data:{name, age}}) => {
console.log(name,age);
// 张三, 30
})
四、ES6运算符扩展 4.1 链判断运算符
a?.b
// 等同于
a == null ? undefined : a.ba?.[x]
// 等同于
a == null ? undefined : a[x]a?.b()
// 等同于
a == null ? undefined : a.b()a?.()
// 等同于
a == null ? undefined : a()
五、Symbol [ 消除魔术字符串 ]
// ES5
function getArea(shape){
let area = 0
switch(shape){
case: 'Triangle':
area = 1
break
case: 'Circle':
area = 2
break
}
return area
}
getArea('Triangle')// ES6
const shapeType = {
triangle: Symbol(),
circle: Symbol()
}
function getArea(shape){
let area = 0
switch(shape){
case shapeType.triangle:
area = 1
break
case shapeType.triangle:
area = 2
break
}
return area
}getArea(shapeType.triangle)
推荐阅读
- vue.js|vue中使用axios封装成request使用
- 前端工匠公众号|令人期待的 JavaScript 新特性
- webpack配置|基于webpack3.x的多页面配置(HtmlWebpackPlugin学习篇二 ——动态配置)
- javascript|使用vue实现自己音乐播放器仿网易云 移动端 (audio、播放、暂停、上一首、下一首、展示评论、音量控制、进度条拖拽)
- javascript|JavaScript常用方法集
- node|KOA --- 1. 简介及安装
- Node|node.js全局对象global及其常用属性(全局变量)
- Node|promise 和 async 函数解决“回调地狱”
- ES6对象解构基础掌握