• ES6 --》JS运算符及数组扩展方法


    目录

    运算符

    扩展运算符

    指数运算符

    链判断运算符

    Null判断运算符

    逻辑赋值运算符

    数组扩展方法

    Array.from()

    Array.of()

    copyWithin()

    find()

    fill()

    flat()


    运算符

    扩展运算符

    扩展运算符是三个点(...),和rest参数的逆运算一样,将一个数组转为用逗号分隔的参数序列。

    数组合并操作如下:

    数组克隆操作如下:

    将伪数组转为真正的数组操作如下:

    1. <div>div>
    2. <div>div>
    3. <div>div>
    4. <script>
    5. // 将伪数组转为真正的数组
    6. const divs = document.querySelectorAll('div')
    7. const divArr = [...divs]
    8. console.log(divArr); //[div,div,div]
    9. script>

    指数运算符

    指数运算符的特点是右结合,而不是左结合,多个指数运算符连用时,从最右边开始计算:

    指数运算符也可以与等号结合使用,形成一个新的赋值运算符 (**=)。

    链判断运算符

    链判断运算符的符号为:?. ,?.运算符相当于一种短路机制,只要不满足条件就不再往下执行。

    如果属性链有括号 ,链判断运算符对括号外部没有影响,只对圆括号内部有影响。

    (a?.b).c 等同于 (a == null ? undefined : a.b).c

    Null判断运算符

    Null判断运算符 符号为:??,它的行为类似于 ||,但只有运算符左侧的值为 null 或 undefined 时,才会返回右侧的值。

    ?? 本质上是逻辑运算,它与其它两个逻辑运算符 && 和 || 有一个优先级问题, 优先级的不同,往往会导致逻辑运算的结果不同,如果多个逻辑运算符一起使用,必须用括号表明优先级,否则会报错。

    1. a && b ?? c//报错
    2. (a && b) ?? c//不报错

    这个运算符的目的就是跟链判断运算符 ?. ,配合使用,为 null 或 undefined 的值设置默认值。

    逻辑赋值运算符

    逻辑赋值运算符,将逻辑运算符与赋值运算符进行结合,先进行逻辑运算,然后根据运算结果再视情况进行赋值运算:

    数组扩展方法

    Array.from()

    用于将两类对象转换为数组:类似数组对象的和可遍历对象。

    如果参数是一个真正的数组,返回的是一样的数组。

    如果参数是一个字符串,则会将字符串转换为数组。

    Array.of()

    用于将一组值转换为数组。

    copyWithin()

    在当前数组内部,将指定位置的成员复制到其他位置并覆盖掉原有成员,然后返回当前数组。

    该方法接受三个参数:

    target(必须):从该位置开始替换数据。如果为负值,表示倒数。

    start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示从末尾开始计算。

    end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示从末尾开始计算。

    上面代码表示将从 3 号位直到数组结束的成员(4 和 5),复制到从 0 号位开始的位置,结果覆盖了原来的 1 和 2。再以下面两个例子举例:

    find()

    数组find()方法,用于找出第一个符合条件的数组成员。由find()衍生了和它类似的方法,如下:findIndex()、findLast()、findLastIndex()。

    fill()

    数组fill()方法,将给定值将数组内容全部覆盖或者局部覆盖

    flat()

    数组flat()方法,用于将嵌套的数组拉平,变成一维的数组,该方法返回一个新数组,对原数组没有影响,简单说就是将数组中的数组拆解插入到当前它所在的位置。

  • 相关阅读:
    计算机毕业设计ssm+vue基本微信小程序的拼车自助服务小程序
    Winform和WPF数据绑定区别小结
    [附源码]计算机毕业设计JAVA小区物业管理系统论文
    【计算机毕设小程序案例】基于微信小程序的图书馆座位预定系统
    数据库MySQL查询优化那些事儿
    Django对接支付宝Alipay支付接口
    java学习一
    2407. 最长递增子序列 II 线段树
    shell小练习2
    cuda系列详细教程-花絮
  • 原文地址:https://blog.csdn.net/qq_53123067/article/details/126871562