Javascript 1线性问题
可能重复:Javascript 1线性问题,javascript,Javascript,可能重复: 下面这行Javascript代码的作用是什么 var somevar = window.somevar || {}; 它将somevar设置为window.somevar如果window.somevar存在并且不是布尔值false,否则它将其设置为空对象{} 这是处理可能未设置的变量的常用习惯用法。这是一个非此即彼的赋值。如果window.somevar为false或未定义,则somevar设置为等于{}。否则将其设置为等于window.somevar这将把表达式window.s
下面这行Javascript代码的作用是什么
var somevar = window.somevar || {};
它将
somevar
设置为window.somevar
如果window.somevar
存在并且不是布尔值false
,否则它将其设置为空对象{}
这是处理可能未设置的变量的常用习惯用法。这是一个非此即彼的赋值。如果
window.somevar
为false
或未定义
,则somevar
设置为等于{}
。否则将其设置为等于window.somevar
这将把表达式window.somevar
作为布尔表达式进行计算。如果计算结果为true
,则返回window.somevar的值。如果它的计算结果为false
,那么它将返回空对象{},类似于一个联合体,它看起来MSI将在这个问题上使用所有ASCII艺术,但英语似乎是一个更好的解决方案。因此,通过将其设置为空对象,这是否反过来成为可用的窗口。somevar?@VinnyD yes,如果上下文('this'))是窗口,这对于在页面中运行的简单脚本是正确的。它将返回window.somevar的值还是引用?@Ketan实际上我不确定。要找出…@Ketan实验表明它已设置为该值。虽然我不能100%确定这一点,但这取决于window.somevar
是什么。如果它是一个对象,那么somevar
将指向window.somevar
指向的同一个对象。因此,如果您随后修改window.somevar
的属性,它将修改somevar
@Ketan的相应属性,这是因为在您的场景中,您创建并修改了一个对象。对于简单值,它使用值()。