es6新特性之基础篇

61 阅读2分钟
  1. let&const

    相同点:不能重复声明、不会变量提升、块级作用域(对比var)

    不同点:

    letconst
    定义变量,可不赋值定义常量,不能改,必赋值
    取代var函数、对象、固定值
    //只要obj指向的地址不变,就允许修改
    const obj={
        name:'aa',
        age:22
    }
    obj.name='bb'
    // obj={
    //     name:'bb',
    //     age:24
    // }
    
  2. 解构赋值—快速从数据取出成员

    解析某个数据的结构,重新赋值给一组变量,通过变量访问到具体的值

    数组解构:可以用来交换值

   let [a,b]=[10,20]
   [a,b]=[b,a]

对象解构(常用):快速访问到需要的某些属性

   let {name,fn}=obj
  1. 展开/合并运算符

    常见场景:函数中参数、数组、对象

    展开数组:...[1,2,3]、[...arr,6,6]

    展开对象

    console.log(...obj);//报错,不能直接展开对象
    let newObj = {//解决:存入新对象
        height:170,
        ...obj
    }
        
  1. 对象简写
   let person = {
       // uname: uname, //属性值和属性同名时
       // sayHi:function(){ //属性值为匿名函数时
       //   console.log('Hi')
       // }
       uname,
       sayHi(){
         console.log('Hi')
       }
   }
  1. 模板字符串

    用反引号包裹str

   let name='hh';
   let age=24;
   let str=`我叫${name},今年${age}岁`;    
   // 作用:1、可换行 2、可解析变量,${变量}
  1. 箭头函数—匿名函数的简写

    去掉function关键字,用箭头连接参数和代码块

    特点:

    1、形参只有一个时,可省略小括号()

    2、代码块只有一行时,可省略大括号{}

    代码块为return语句时,可省略return关键字,原因:箭头函数会自动将代码结果作为返回值

    与普通函数区别:

    this指向不同,普通:谁调用指向谁,箭头:谁定义指向谁

  2. 函数形参默认值

    函数调用时,未传实参,则采用形参作为默认值(有替代直接覆盖)

    var ff = function (n,m=10) {
        console.log(n,m)
    }
    ff()//undefined 10
    ff(20)//20 20
    ff(30,40)//30 40
  1. 模板的导入导出

    es6模块化 - 掘金 (juejin.cn)