0

考虑底部的代码,在一个常规函数中,它检查是否提供了某个参数,并将默认值分配给名为 message 的变量。如果参数为真或空字符串,则将其简单地转换为字符串并存储在消息变量中,否则将参数的类型存储在消息中。我知道可以缩短 if else 语句以将默认值分配给变量,例如:

var message = arguments[0] || jQuery.type(arguments[0]);

如果只有 arguments[0] 是真实的,它将存储在消息中。但是如何为一个虚假值的空字符串创建一个例外,而不必使用长的 if else 语句?

if(arguments[0] || arguments[0] === '')
    var message = arguments[0].toString();
else
    var message = jQuery.type(arguments[0]);
4

2 回答 2

1
var message = ((arguments[0] || arguments[0] === '') ? arguments[0].toString() : jQuery.type(arguments[0]));
于 2013-07-24T17:35:49.840 回答
1

听起来您正在寻找 if/else 的简写。如果是这样,您可以在此处找到问题的答案。基本上你需要的是一个三元运算符。

摘录如下:

var x = y !== undefined ? y : 1;

于 2013-07-24T17:33:55.443 回答