ES6的一些新语法

143 阅读3分钟

「这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战」。

let与const

let与const的区别:

  • let :变量 值可以修改
  • const : 常量 值不可以改变 只能赋值一次(只能在声明的时候赋值一次,之后无法改变)

ES6声明变量特点:

  • 没有预解析 :变量必须要先声明再能使用
  • 有块级作用域 :if和for大括号中都是局部变量

ES5 声明变量var特点

  • 预解析 :声明提升到当前作用域最顶端
  • 没有块级作用域 :var在if和for中都是全局变量

1.png

解构

对象解构

解构赋值

就是变量赋值的简写

语法

  • 取出对象的值赋值给变量
    let obj = {
            name:'张三',
            age: 36,
            native:'中国'
        }
    let {name,age,native} = obj
    console.log(name,age,native) //张三 36 中国
    
  • 取出对象的值赋值给变量
    let obj = {
            name:'张三',
            age: 36,
            native:'中国'
        }
    let {name,age,native} = obj
    console.log(name,age,native) //张三 36 中国
    
    let obj2 = {name,age,native}
    console.log(obj2);//{name: '张三', age: 36, native: '中国'}
    

对比ES5与ES6变量赋值

  • 取出对象的值赋值给变量

    let obj = {
           name:'张三',
           age: 36,
           native:'中国'
       }
    //Es6解构赋值,声明变量,自动取右边对象的同名属性赋值
    //let {name,age,native} = obj
    //ES5传统赋值
    let name = obj.name
    let age = obj.age
    let native = obj.native
    
  • 取出变量的值赋值给对象

    let name = '张三'
    let age = 36
    let native = '中国'
    
    //Es6解构赋值,可以和ES5混用,前提条件是 变量名和属性名一样
    //let obj = {name,age,native} 
    //ES5传统赋值
        let obj = {
        name:name,
        age:age,
        native:native
        } 
    

数组解构

数组也是对象所以和对象解构的原理一样

  • 取出数组的值赋值给变量

        let arr = [10,20,30,40,50,60]
        let [num1,num2,num3] = arr
        console.log(num1,num2,num3) // 10 20 30
    
  • 取出变量的值赋值给数组

    let num1 = 10
    let num2 = 20
    let arr = [num1,num2]
    console.log(arr) //[10,20]
    

函数参数解构

参数为对象类型

     let obj = {
         name:'张三',
         age: 36,
         native:'中国'
     }
     function fn({name,age,native}){
         console.log(name,age,native);
     }
     fn(obj)//张三 36 中国

函数传参本质是实参给形参赋值,如果实参是对象,则形参可以使用解构赋值

2.png

箭头函数

什么是箭头函数

其实就是function简写

语法

  • 去掉function 改成箭头 =>
  • 将形参的小括号移到左边
  • let fn = ()=>{}
  • 调用一样还是fn()

用法

  • 常规用法

    let fn = ()=>{}

  • 其他用法

    如果箭头函数只有一个形参,则可以省略小括号 let fn = 形参=>{}

    如果箭头函数大括号只有一行代码,则可以省略大括号。此时也要省略return

    let fn = 形参=>一行代码

this的指向

谁’声明‘我,我就指向谁

真正含义:箭头函数没有this

箭头函数本身是没有this的,本质是通过作用域链访问上一级的this

展开运算符

语法

...需要展开的对象

作用

相当于遍历对象简写 把数组打开

场景

添加数组,运用于长列表

    let arr1 = [1,2,3]
    let arr2 = [...arr1]
    console.log(arr2) //[1,2,3]

3.png

加油加油!!

努力学习!!