最佳实践“OR”和“三元”运算符

时间:2015-09-03 13:04:14

标签: javascript variables operators

当我们为变量赋值时,最好使用||运营商还是?操作

示例:

OR

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

三元

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

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

这两者并不相同 在第一个版本中,您检查scrollX值是否为'。也就是说,如果它是undefined,false,null,0等等 在第二个版本中,您检查窗口对象是否具有scrollX属性。

例如:
如果您使用第一个值且scrollX值为0,则它将使用pageXOffset属性值,而在版本2中,它将使用scrollX值。< / p>

在控制台中尝试:

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);

答案 1 :(得分:0)

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

以上方法有一些副作用。在这种情况下,JS中存在短路结构。无论window.scrollX采用什么,总是会被接受。除非未定义,否则x的所有结果都是window.scrollX