我开始喜欢PHP对"短三元制"的支持,省略了第二个表达式:
// PHP
$foo = 'hello';
$bar = '';
echo $foo ?: 'world'; // hello
echo $bar ?: 'world'; // world
Javascript支持这样的语法吗?我试过?:
导致语法错误。我知道布尔短路,但这对我目前的工作来说是不可行的;:
// Javascript
var data = {
key: value ?: 'default'
};
有什么建议吗?(我可以把它包装在一个立即调用的匿名函数中,但这似乎很愚蠢)
var data = {
key: value || 'default'
};
是的,使用||
。与PHP不同,JavaScript的||
操作符将返回第一个非假值,而不是规范化的布尔值。
foo || 'world'
var myFunc = function(foo) {
foo = foo || 'my default value for foo';
}