• 使用js操作符优化代码( ?. )( ~~ )( |> )


    1. 可选链操作符( ?. )

    const Obj = {}
    // 1.使用普通的判断语法
    var name = Obj.info?Obj.info.name:""
    console.log(name)
    // 2.使用可选链 语法
    var name = Obj.info?.name
    console.log(name)
    // 输出同样的undefined   而不报错
    

    2. ~~运算符

    // 普通js代码
    var numStr = '123'
    console.log(parseInt(numStr));
    var numStr = '123'
    console.log(~~numStr);
    // 这两个输出的都是123
    
    // ***********************
    // 但是如果数据本身错误呢?
    var numStr = '我不是数字123'
    console.log(parseInt(numStr))
    // 输出NaN
    
    var numStr = '我不是数字123'
    console.log(~~numStr)
    // 输出数字类型的0
    // 这种情况他的优势就出来了,使用`~~`即使是数据错误,但是他返回的数据类型不会影响后续数据格式的处理
    

    3. 管道运算符( |> ) 这是一个实验中的功能

    let url = "%21" |> decodeURI;
    let url = decodeURI("%21");
    // 上面两种是等效的
    const getSchool = (name) => `${name}, 就读清华大学`
    const getInfo = (name) => `${name}, 我今年18岁`
    const getName = (title) => title + "张三"
    
    // 普通js语法
    getSchool(getInfo(getName("我的名字叫:")))
    
    // 管道操作符语法
    "我的名字叫:" |> getName |> getInfo|> getSchool
    
    // 输出 我的名字叫:张三, 我今年18岁, 就读清华大学
    

    参考

  • 相关阅读:
    洛谷P2146 [NOI2015]软件包管理器
    洛谷P3038 [USACO11DEC]牧草种植Grass Planting
    洛谷P2831 愤怒的小鸟
    洛谷P1084 疫情控制
    洛谷P3258 [JLOI]2014松鼠的新家
    洛谷P1084 运输计划
    洛谷P2051 [AHOI2009]中国象棋
    洛谷P1438 无聊的数列
    洛谷P1312 Mayan游戏
    luogu P1038 神经网络
  • 原文地址:https://www.cnblogs.com/huangguofeng/p/13735856.html
Copyright © 2020-2023  润新知