为了账号安全,请及时绑定邮箱和手机立即绑定

可以使用 javascript `??` 运算符作为速记吗

可以使用 javascript `??` 运算符作为速记吗

holdtom 2023-05-11 16:45:34
我通常使用三元运算符,例如:let foo = str.match(/[*]/g) ? str.match(/[*]/g) : "none!";自从使用 PHP 以来,我注意到该语言有很多速记,对于三元运算符,将使用:$foo = $view->test ?? "none";我没有在 javascript(或关于它的文档)中看到它,但试过它:let str = "1234";let foo1 = str.match(/[*]/g) ?? "none;console.log(foo) // "none"let str1 = "1*2*";let foo1 = str1.match(/[*]/g) ?? "none;console.log(foo1) // ['*','*']它似乎有效。在检查元素是否存在时,这是使用三元运算符的可接受方式吗?
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

我想使用nullish coalescing operatoror是完全合法的??

不过请务必检查浏览器兼容性!

=======

还有逻辑 OR||运算符可用于类似的操作:

o1 = true  || true       // t || t returns true

o2 = false || true       // f || t returns true

o3 = true  || false      // t || f returns true

o4 = false || (3 == 4)   // f || f returns false

o5 = 'Cat' || 'Dog'      // t || t returns "Cat"

o6 = false || 'Cat'      // f || t returns "Cat"

o7 = 'Cat' || false      // t || f returns "Cat"

o8 = ''    || false      // f || f returns false

o9 = false || ''         // f || f returns ""

o10 = false || varObject // f || object returns varObject


查看完整回答
反对 回复 2023-05-11
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信