ECMA Script6

2017-12-18  本文已影响0人  奈何明月照沟渠
变量与常量

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'接收

上一篇下一篇

猜你喜欢

热点阅读