猿问

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

我通常使用三元运算符,例如:


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) // ['*','*']

它似乎有效。在检查元素是否存在时,这是使用三元运算符的可接受方式吗?


holdtom
浏览 110回答 1
1回答

Helenr

我想使用nullish coalescing operatoror是完全合法的??。不过请务必检查浏览器兼容性!=======还有逻辑 OR||运算符可用于类似的操作:o1 = true  || true       // t || t returns trueo2 = false || true       // f || t returns trueo3 = true  || false      // t || f returns trueo4 = false || (3 == 4)   // f || f returns falseo5 = '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 falseo9 = false || ''         // f || f returns ""o10 = false || varObject // f || object returns varObject
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答