javascript - 最佳实践 "OR"和 "Ternary"运算符

标签 javascript variables operators

当我们为变量赋值时,最佳实践是使用||运算符或 ?运算符?

示例:

或者

var x = window.scrollX || window.pageXOffset;

三元

var x = "scrollX" in window ? window.scrollX : window.pageXOffset;

最好的方法是什么?

最佳答案

两者并不等同。
在第一个版本中,您检查scrollX值是否为"is"。也就是说,如果其未定义、false、null、0 等等。
在第二个版本中,您检查窗口对象是否具有 scrollX 属性。

例如:
如果您使用第一个并且 scrollX 值为 0,它将使用 pageXOffset 属性值,而在版本二中,它将使用scrollX 值。

在控制台中尝试一下:

var a = { x: 0, y: 1 };
var or = a.x || a.y;
var tern = 'x' in a ? a.x : a.y;

console.log('or: ' + or);
console.log('tern: ' + tern);

关于javascript - 最佳实践 "OR"和 "Ternary"运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32376464/

相关文章:

javascript - DIV on hover - 让它可以悬停并改变它的不透明度,不闪烁

javascript - 如何更新 Firebase Firestore 中的动态字段名称?

python - 如何将python变量传递给html变量?

C++ operator setter ruby​​ 风格

javascript - JQuery 过滤字符串中的数字

javascript - 如何防止/最小化此 d3 示例的回流?

c++ - 如何在不将其声明为全局变量的情况下全局使用变量?

postgresql - PSQL 脚本中的变量无需创建函数

java - 冒号(:) operator do?

perl - 什么时候在某种外部使用飞船运算符(operator)?