设置javascript变量时使用"in"

fre*_*ler 2 javascript syntax jquery

我最近得到了这段javascript(作为jQuery函数的一部分)...

var h = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight;
var w = "innerWidth" in window ? window.innerWidth : document.documentElement.offsetWidth;
Run Code Online (Sandbox Code Playgroud)

我以前从未见过"innerHeight" in,我找不到任何解释,或者为什么使用它.(谷歌搜索这个词in并不是很有帮助.)

是jQuery语法吗?

Que*_*tin 5

不,in运营商是核心JavaScript.

它解析为true好像右侧的对象具有名称与左侧字符串匹配的属性.

一个简单的例子:

var foo = {
    a: 1,
    b: undefined
}

var o = document.getElementById('output');

o.innerHTML = ("a" in foo) + "<br>" + 
    ("b" in foo) + "<br>" + 
    ("c" in foo) + "<br>";
Run Code Online (Sandbox Code Playgroud)