我知道在php 5.3中,而不是使用这种冗余的三元运算符语法:
startingNum = startingNum ? startingNum : 1
...我们可以在适用的情况下为我们的三元运算符使用简写语法:
startingNum = startingNum ?: 1
我知道javascript中的三元运算符:
startingNum = startingNum ? startingNum : 1
......但有简写吗?
谢谢你们!
答案 0 :(得分:135)
var startingNumber = startingNumber || 1;
你正在寻找什么,如果未定义它默认为什么?
var foo = bar || 1; // 1
var bar = 2;
foo = bar || 1; // 2
顺便说一句,这适用于很多场景,包括对象:
var foo = bar || {}; // secure an object is assigned when bar is absent
答案 1 :(得分:21)
||
将返回它遇到的第一个truthy值,因此可以用作合并运算符,类似于C#的??
startingNum = startingNum || 1;
答案 2 :(得分:10)
是的,有:
var startingNum = startingNum || 1;
通常,expr1 || expr2
按以下方式工作(如the documentation所述):
如果可以转换为
expr1
,则返回true
;否则,返回expr2
。因此,当与Boolean
值一起使用时,||
如果任一操作数为true
,则返回true
;如果两者都是false
,则返回false
。
答案 3 :(得分:3)
随着 ES2020 的加入:
新 w/Nullish Coalescence:$crypto_news = CryptoNews::where('status', '=', 1)
->where('urlToImage', '!=', 'no_preview.png')
->where('urlToImage', '!=', '')
->where('lang', 'en')->where('id', '!=', $id)
->orderBy('publishedAt', 'desc')->simplePaginate($limit);
旧操作:const difficulty = var?.nest[i]?.prop ?? false
属性前的问号将首先检查对象是否存在(如果您不确定它是否存在:就像在 API 数据中一样),如果缺少对象,它将返回 const difficulty = var.nest[i].prop ? var.nest[i].prop : false
>
undefined
检查左侧的值是 ??
还是 null
,如果是,则返回右侧提供的值。
答案 4 :(得分:1)
var startingNum = startingNum || 1;
在这种情况下,您可以使用OR运算符。
答案 5 :(得分:1)
startingNum = startingNum || 1
如果您的条件为null,例如
startingNum = startingNum ? startingNum : null
您可以使用'&&'
startingNum = startingNum && startingNum
答案 6 :(得分:0)
以上答案是正确的。在JavaScript中,以下语句:
startingNum = startingNum ? otherNum : 1
可以表示为
startingNum = otherNum || 1
此处未涉及的另一个方案是,如果您希望值在未匹配时返回false。 JavaScript的简写是:
startingNum = startingNum ? otherNum : 0
但它可以表示为
startingNum = startingNum && otherNum
只是想覆盖另一种情况,以防其他人正在寻找更广泛的答案。
答案 7 :(得分:0)
制作三元组:
boolean_condition ? true_result : false_result
在javascript中,你可以这样做:
(boolean_condition && true_result ) || false_result;
示例:
(true && 'green') || 'red';
=> "green"
(false && 'green') || 'red';
=> "red"
答案 8 :(得分:0)
在大多数现代浏览器中,您现在可以使用:
startingNum ??= 1;
这只会更改startingNum
或null
的{{1}}。