javascript - 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗

标签 javascript performance if-statement readability or-operator

今天我正在处理的项目出现了这个问题。 “问题”是我在提供给我的数据中有一些不确定性,我正在构建我的应用程序。这意味着可能某些值有时存在但有时不存在。因为我希望我的上层有一些一致性,所以我写了一些“清理”方法来创建我想要的一致性。

但是...什么更好?

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/

相关文章:

javascript - 在一组动态创建的表之间显示多条水平线

javascript - this.key 与变量性能

javascript - 在 IE 中 Javascript 的执行速度比 Firefox、Safari 和 Chrome 慢

java - 使用 while 循环根据收到的参数调用方法?

javascript - 尝试通过 Google 应用脚本将表单条目(从侧边栏)传递到 Google 表格中的特定列/单元格

javascript - Java REST 调用与 Web 应用程序的前端有何关系?

javascript - 在运行时选择私有(private)字段

javascript函数和参数对象,是否涉及成本

javascript - 具有多个条件的 JS 三元函数?

c++ - multiple if without else 不等于 if else? C++