求一种js写法的解释var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;这里的变量w为什么可以用或的关系表示呢?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 10:18:44
![求一种js写法的解释var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;这里的变量w为什么可以用或的关系表示呢?](/uploads/image/z/5493264-24-4.jpg?t=%E6%B1%82%E4%B8%80%E7%A7%8Djs%E5%86%99%E6%B3%95%E7%9A%84%E8%A7%A3%E9%87%8Avar+w%3Dwindow.innerWidth%7C%7C+document.documentElement.clientWidth%7C%7C+document.body.clientWidth%3B%E8%BF%99%E9%87%8C%E7%9A%84%E5%8F%98%E9%87%8Fw%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E7%94%A8%E6%88%96%E7%9A%84%E5%85%B3%E7%B3%BB%E8%A1%A8%E7%A4%BA%E5%91%A2%3F)
求一种js写法的解释var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;这里的变量w为什么可以用或的关系表示呢?
求一种js写法的解释
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
这里的变量w为什么可以用或的关系表示呢?
求一种js写法的解释var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;这里的变量w为什么可以用或的关系表示呢?
首先,这里的||你可以变相跟C#中的?放一起来考虑,另外你需要知道在js中,像数值0,空字符串,空值,undefined等这些在跟bool值做比对的时候都是false,而其他都为true,那么这里
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
如果第一个为0,那么看第二个,如果第二个也为0(即false),那么看第三个,直到有一个非0位置,也就是说非false为止,就返回该值
或者也可以这么理解成if-elseif-else,即这里的
var w;
if(window.innerWidth!=0/undefined/...等其他)
{
w=window.innerWidth;
}
elseif(document.documentElement.clientWidth!=0/其他)
{
w=document.documentElement.clientWidth;
}
elseif(...){...}
else{ ... }
用非运算符只是精简写法而已,同三元表达式,linq等,目的都是为了精简代码