美文网首页
js中?.、??、??=的用法

js中?.、??、??=的用法

作者: SailingBytes | 来源:发表于2022-04-19 18:02 被阅读0次

1、可选链?. 

javascript中如果一个值为null、undefined,而直接访问。。。

会报 Uncaught TypeError: Cannot read properties of undefined 异常错误。

而在真实的项目中是会出现这种情况,有这个值就读这个值,没有这个值也不会报错。

可能有的小伙伴会说用三木运算符、或者if判断,但是这种也是可以的,但是在特定情况下会很复杂(如obj.data.person.name)

而.?则完美解决这个问题(obj?.data?.person?.name)。

?. 可以无限链下去,不论有多少属性,只要有最后可以访问到属性,就会直接赋值最后的属性值。否则当任何一个链出现问题,立刻停止,而后赋值undefined。

2、空值合并运算符??

?? 双问号后面是默认值(可常量、可变量)。

在 ?? 前面没有值得时候会默认 ?? 后边的值(类似于三木运算符中的:后面赋值)。

let obj = {age: 0, name: '', sex: null};

obj.age ?? '111'; // 0

obj.name ?? '111'; // ''

obj.sex ?? '111';     // 111

obj.addr ?? '111';     // 111

空值合并运算符??

?? 出现null ,undefined值会后,合并默认值(??后面的值)。

3、空值赋值运算符??=

和空值合并运算符??类似(可常量、可变量)。

当??=左侧的值为null、undefined的时候,会将右侧的值赋值给左侧变量。

let obj = {age: 0, name: '', sex: null, addr: undefined};

obj.age ??= '111';     // 0

obj.name ??= '111';     // ''

obj.sex ??= '111';     // 111

obj.addr ??= '111' ;     // 111

空值赋值运算符??=

相关文章

  • js 循环

    js中forEach,for in,for of循环的用法 js的 for...in 和 for...of的用法 ...

  • React-Native常用技巧

    JS 语法 1. js中 !!用法 js中 ! 的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!...

  • js中Map基本用法

    js中Map之基本用法

  • JS杂记

    JS中$含义及用法 js发送get 、post请求的方法简介

  • js中(...)用法

    1,深拷贝[https://so.csdn.net/so/search?q=%E6%B7%B1%E6%8B%B7%...

  • JS中的this用法

    例1: 该方式的运行结果为document! 例2: 该方式的运行结果是object window! 例3: 该方...

  • js中this的用法?

    大家好,我是IT修真院成都分院第09期学员。今天分享的内容是js中this的用法? 1.背景介绍 JavaScri...

  • JS 中的 this 用法

    总结一波 this 的理解,首先在最开始引用一句“this的指向在函数定义的时候是确定不了的,只有函数执行的时候才...

  • JS中this的用法

    (1)直接调用(默认绑定) this == window注:在严格模式下此时的this指代undefined (2...

  • JS中“!!”的用法

    由于对null与undefined用!操作符时都会产生true的结果,两个感叹号的作用:如果明确设置了o中flag...

网友评论

      本文标题:js中?.、??、??=的用法

      本文链接:https://www.haomeiwen.com/subject/hmnsertx.html