ECMA Script6
变量与常量
let
替代了 var
增加了常量const的概念例如这样写
const a=1
a=2
会报语法错误
增加了块级作用域
{var a = 0}
console.log(a)//0
{let b= 0}
console.log(b)//not definde
外部访问不到块级作用域中的变量;
增加了字符串模板
let name = ls
利用反引号console.log( `my name is ${name}` )//my name is ls
函数
箭头函数
let fun=(arg1,arg2)=>{
console.log(arg1,arg2)
}
()=>
替换了function()
箭头函数内部没有 [[construct]]
方法, 因此不能当作构造器和使用new
操作符
箭头函数内部没有原型链prototype和arguments对象
箭头函数内部的this在生命周期内不会更改指向
参数展开
let arr=[1,2]
调用之前声明的fun函数fun(...arr)
//1 2
Obj
新方法
Object.keys(obj)
返回obj所有的key
Object.values(obj)
返回所有的value
Object.entries(obj)
返回对象转换成的数组[0:{key:value}]
计算属性
const name='ls'
let obj={[name]:'good'}
打印objobj{ls:good}
键值对简写
let obj={name}
打印obj obj{name:ls}
function
let obj{
fun(){console.log(1)}
}
扩展
const obj1={name:'ls1'} const obj2={name:'ls',age:25}
let obj={...obj1,...obj2,love:"yr"}
可以得到obj{name:'ls',age:25,love:'yr'}
其中对重复的name键进行了覆盖
解构赋值
对象解构
const obj={name:'ls',age:25}
let {name,age} = obj
此时等价于var name=obj[name]; var age=obj[age]
数组解构
const arr=[ls,25]
let [arg1,arg2] = arr
等价于let arg1 = arr[0] let arg2= arr[1]
类
class Person{
constructor(){
this.name = ls
}
showName(){
console.log(`i am ${this.name}`)
}
}
创建实例const i = new Person()
i.showName()
模块化
export const arr = [1]
暴露变量出去
在另一个文件中就可以import arr form 'src'
接收