Closed. This question is opinion-based。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                
                    4年前关闭。
            
        

    

当我们为变量赋值时,最佳实践是使用||。运算符还是?操作员?

例:

要么

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

10-04 16:34