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 operator
or是完全合法的??
。
不過請務必檢查瀏覽器兼容性!
=======
還有邏輯 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
添加回答
舉報
0/150
提交
取消