• ES6 | 解构、模板字符串、简化对象、箭头函数


    目录

    一、解构(数组、对象)

    1.数组解构

    2.对象的解构

    二、ES6引入新的声明字符串的方式【``】

     三、简化对象写法

    四、箭头函数

    1.this是静态的,this始终指向函数声明明所在作用域下

    2.不能作为构造实例化对象

    3.不能用做arguments变量

     4.箭头函数的简化


    一、解构(数组、对象)

    1.数组解构

    • 模式匹配
      1. let arr = [1,2,3]
      2. let [a,b,c] = arr
      3. console.log(a,b,c)

      不仅仅是一维数组,也可以是多维数组!

      1. let arr = [1,[2,3],4]
      2. let [a,b,c] = arr
      3. console.log(a,b,c)

    • ...扩展运算符(省略参数,后面的变为数组) 

    1. // ...扩展运算符
    2. let arrs = [1,2,3,4,5,6]
    3. let [a,...b] = arrs
    4. console.log(a,b)

     

    • 合并数组
      1. //合并数组
      2. let arr1 = [1,2,3]
      3. let arr2 = [4,5,6]
      4. let arr = [...arr1,...arr2]
      5. console.log(arr)
       
    •  默认值(必须是Undefined,默认值才有效)
      1. //默认值
      2. let [c,d] = [1]
      3. console.log(c,d)

      因为右边的数组只有一个1,d没有被赋值,所以d是undefined。

      1. let [c,d=2] = [1]
      2. console.log(c,d)

       

      当右边的的数组中的元素不够左边的变量时,可以用【d=2】来设置变量的默认值。BUT!如果:

      1. let [c,d=2] = [1,'undefined']
      2. console.log(c,d)

       

      1. let [c,d=2] = [1,null]
      2. console.log(c,d)

       

      都是不行的,哒咩呦~ 哒咩哒咩!必须是undefined时,默认值才会有效。

    2.对象的解构

    • 基本用法
      1. //1.基本使用
      2. let Person = {name:'王仕丹',age:18}
      3. let {name,age} = Person
      4. console.log(name,age)

      key值一一对应,顺序无影响 !

    • 重命名

      1. //2.重命名
      2. let Person1 = {name:'王仕丹a',age:19}
      3. let {name:myname,age:myage} = Person1
      4. console.log(myage,myname)

      真正被赋值的是后者(myname、myage),而不是name、age.

    • 默认值

      1. //3.默认值
      2. let Person2 = {name:'王仕丹',age:19}
      3. let{name,age,height=180} = Person2
      4. console.log(name,age,height)

       

      你看,在Person2对象中并没有变量height,但是左边的对象中有【height = 180】,所以王仕丹才有了180的身高,这就是默认值!!!和数组解构的默认值是没有什么区别的。

    二、ES6引入新的声明字符串的方式【``】

    1. 声明
      1. //1.声明
      2. let str = `我也是一个字符串`
      3. console.log(str,typeof str)
       
    2. 内容中可以直接出现换行符
      1. //2.内容中可以直接出现换行符
      2. let str = `
        • 沈腾
    3. 沈腾
  • 沈腾
  • 沈腾
  • `
  • console.log(str)
  •  三、简化对象写法

    1. 变量的简化
    2. 方法的简化
      1. const school = {
      2. name,//name = name
      3. change,//change = change
      4. improve(){
      5. console.log('我们可以提高你的技能')
      6. },
      7. // improve:function(){
      8. // console.log('我们可以提高你的技能')
      9. // }
      10. }

      方法名之间的【:function】可以省略!

    四、箭头函数

    1.this是静态的,this始终指向函数声明明所在作用域下

     

    可以看到,普通函数的指向发生了改变,但是箭头函数并没有发生改变! 

    其中还有一个比较重要的点,不能作为构造实例化对象!!

    2.不能作为构造实例化对象

     

    3.不能用做arguments变量

    我们先来看一下普通函数:

    1. let fn = function(){
    2. console.log(arguments)
    3. }
    4. fn(1,2,3)

     

    我们再来看一下构造函数:

    1. let fn = ()=>{
    2. console.log(arguments)
    3. }
    4. fn(1,2,3)

     4.箭头函数的简化

  • 相关阅读:
    Element中Tree树结构组件中实现Ctrl和Shift多选
    CF487C Prefix Product Sequence 题解
    Linux学习之Redis使用
    程序人生 | 测试工程师还只会点点点?7个捷径教给你快速学习新技术...
    (一)TinyWebServer的环境配置与运行
    LeetCode 768. 最多能完成排序的块 II
    前端基础(四十一):你不知道的JavaScript - 行为委托 及 类写法的实例应用
    CSS进阶篇——具体性 (specificity)
    [附源码]Python计算机毕业设计SSM联动共享汽车管理系统(程序+LW)
    node.js+mysql+vue.js+vuex+echarts+elementui全栈后台管理系统
  • 原文地址:https://blog.csdn.net/m0_72383454/article/details/126712645