谁能告诉我在定义对象之前使用三元运算符检查对象是否已经存在背后的原因吗?
var message = message || "hello",
messageOverwritten = "Variable wasn't overwritten",
messageOverwritten = messageOverwritten || "Variable wasn overwritten";
console.log( message );
console.log( messageOverwritten );
/*
* Output
*
* -> hello
* -> Variable wasn't overwritten
*/
最佳答案
这里发生的只是一个“或”语句。例如,如果 message
为 null
或 undefined
,则测试时它将计算为 false
,并且 or 语句将评估右侧。然后,右侧将是设置为 message
的值。
这样做的原因是因为有些人认为它比替代方案更简洁:
if (!message)
message = "hello";
关于javascript - 像这样定义 JS 变量有什么意义 : var appName = appName || {};,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422897/