今天我正在处理的项目出现了这个问题。 “问题”是我在提供给我的数据中有一些不确定性,我正在构建我的应用程序。这意味着可能某些值有时存在但有时不存在。因为我希望我的上层有一些一致性,所以我写了一些“清理”方法来创建我想要的一致性。
但是...什么更好?
var myNewData = {};
myNewData['somevalue'] = (myOldData.somevalue) ? myOldData.somevalue : '';
或
var myNewData = {};
myNewData['somevalue'] = myOldData.somevalue || '';
还有……为什么更好?是性能吗?可读性? 只是好奇。
编辑: 要清楚。 'somevalue' 属性不一定必须在旧数据中。有时是有时不是。
编辑2: 当然,如果我知道我的旧数据的值包含非字符值(数字、 bool 值等),我将默认为其适当的值(0、true 等)。
最佳答案
您应该以可读性为目标,对于这种情况,||
显然胜出。
Javascript 的性能很难预测,因为它在不同的实现之间可能会有很大差异,有时结果显然完全不合逻辑(正式需要三次查找的东西可能比需要一次的东西更快,因为可能是运行时引擎已经被专门用于该代码路径)。
关于javascript - 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10204871/