我有一个 <iframe>,它使用一些在父文档的对象文字中设置的变量。这些变量是可选的;如果设置了它们,我想使用它们的值,将它们分配给更简洁的全局变量;如果没有,我想调用函数error()。
首先,这个三元运算符语句对于我想做的事情是否有效?这里有潜在的陷阱吗?
parent.settings.account ? var account = parent.settings.account : error();
其次,有没有更简洁的方式来编写该语句?
其中一些变量是可选的,但如果定义,则具有一系列可接受的值。有什么可靠的方法来处理这个问题?像这样的吗?
if (parent.settings.polling_interval && parent.settings.polling_interval >= 1000 && parent.settings.polling_interval <= 5000) {
var polling_interval = parent.settings.polling_interval;
} else {
var polling_interval = 3000; // default
}
基本上,如果未定义或超出范围,我想使用默认值。
我可以只依赖一个条件语句,例如:
if (parent.settings.polling_interval) { ... }
或者我需要检查它是否未定义,就像这样?
if (typeof parent.settings.polling_interval !== 'undefined') { ... }
有没有更健壮和/或更简洁的东西?感谢您的任何建议。
最佳答案
这是错误的:
parent.settings.account ? var account = parent.settings.account : error();
你的意思是:
var account = parent.settings.account ? parent.settings.account : error();
或者甚至:
var account = parent.settings.account || error();
关于javascript - 在 JavaScript 中编写这些语句的简洁而健壮的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1720032/