上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

可选链运算符(?.)和空值合并运算符(??)的使用

[复制链接]
  • TA的每日心情
    无聊
    2023-11-2 17:37
  • 签到天数: 275 天

    [LV.8]以坛为家I

    111

    主题

    447

    回帖

    961

    积分

    荣誉开发者

    积分
    961

    荣誉开发者油中2周年卓越贡献生态建设者

    发表于 2022-11-5 16:50:30 | 显示全部楼层 | 阅读模式

    本帖最后由 wwwwwllllk 于 2022-11-5 18:21 编辑

    本帖最后由 wwwwwllllk 于 2022-11-5 18:20 编辑

    可选链运算符(?.)

    let obj = null
    console.log(obj.name)
    // 我们平时在项目中加入后端传入的数据的data有时候是null,然后我们要是对象的时候取对象里面的某一个值
    if(obj && obj instanceof Object){
      console.log(obj.name)
    }
    
    // 假如用了可选链选择符,我们可以这样写
    console.log(obj?.name)
    
    // 上面是为了防止obj为null,undefined的时候, 直接obj.name会报错    如果初始值obj为{},是不会报错的
    
    /*
      数组也是一样
    */
    let list;
    
    // 之前我们要这样写
    if(list instanceof Array && list.length > 0) {
      list.map((item) => {
        console.log(item)
      })
    }
    
    // 现在这样写就好了
    list?.map((item) => {
      console.log(item)
    })
    

    空值合并运算符(??)

    // 我们定义一个值  用||的话前面是0,false,null,undefined都会输出后面的值,但是我只想前面为null,undefined的时候输出后面的值
    // 为false,0这些也代表我有值
    let name;
    // let a = 0 || '哈哈'     // 哈哈
    // let b = false || 'hehe'   // hehe
    // let c = null || 'heihei' // heihei
    // let d = name || '张三'  // 张三
    
    let a = 0 ?? '哈哈'     // 0
    let b = false ?? 'hehe'   // false
    let c = null ?? 'heihei' // heihei
    let d = name ?? '张三'  // 张三
    I frequently record, because want to leave something.
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    633

    主题

    5173

    回帖

    6052

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6052

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-11-5 17:24:42 | 显示全部楼层
    空值合并运算符(?.)是??吧
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-2 17:37
  • 签到天数: 275 天

    [LV.8]以坛为家I

    111

    主题

    447

    回帖

    961

    积分

    荣誉开发者

    积分
    961

    荣誉开发者油中2周年卓越贡献生态建设者

    发表于 2022-11-5 18:20:14 | 显示全部楼层
    李恒道 发表于 2022-11-5 17:24
    空值合并运算符(?.)是??吧

    写错了,重新改一下
    I frequently record, because want to leave something.
    回复

    使用道具 举报

  • TA的每日心情

    2023-10-19 09:35
  • 签到天数: 66 天

    [LV.6]常住居民II

    6

    主题

    126

    回帖

    219

    积分

    高级工程师

    积分
    219

    油中2周年生态建设者

    发表于 2022-11-6 14:46:11 | 显示全部楼层
    自从挨打后,我再也不这样子写了
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-2 17:37
  • 签到天数: 275 天

    [LV.8]以坛为家I

    111

    主题

    447

    回帖

    961

    积分

    荣誉开发者

    积分
    961

    荣誉开发者油中2周年卓越贡献生态建设者

    发表于 2022-11-6 17:02:40 | 显示全部楼层
    极品小猫 发表于 2022-11-6 14:46
    自从挨打后,我再也不这样子写了

    为什么会挨打
    I frequently record, because want to leave something.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-3-30 08:28
  • 签到天数: 157 天

    [LV.7]常住居民III

    7

    主题

    68

    回帖

    176

    积分

    荣誉开发者

    积分
    176

    新人报道荣誉开发者油中2周年

    发表于 2022-11-7 12:06:11 | 显示全部楼层
    好简洁好优雅啊w~
    人情似纸张张薄,世事如棋局局新。
    回复

    使用道具 举报

  • TA的每日心情

    2023-10-19 09:35
  • 签到天数: 66 天

    [LV.6]常住居民II

    6

    主题

    126

    回帖

    219

    积分

    高级工程师

    积分
    219

    油中2周年生态建设者

    发表于 2022-11-19 12:07:45 | 显示全部楼层

    你希望简洁优雅,有人希望看得懂~
    大概三元运算符和  && || 是极限
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-11-2 17:37
  • 签到天数: 275 天

    [LV.8]以坛为家I

    111

    主题

    447

    回帖

    961

    积分

    荣誉开发者

    积分
    961

    荣誉开发者油中2周年卓越贡献生态建设者

    发表于 2022-11-19 14:29:43 | 显示全部楼层
    Vikrant 发表于 2022-11-7 12:06
    好简洁好优雅啊w~

    确实,哥哥说的有道理。。。。。
    I frequently record, because want to leave something.
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表