Javascript statement with || {};
Javascript statement with || {};
我正在学习javascript,今天我发现了这段代码:
window.Picture2 = window.Picture2 || {};
我不明白的|| {};有人能给我解释一下吗?非常感谢:)
将默认值赋给全局变量Picture2
是一种危险的方式。
window.Picture2 = window.Picture2 || {};
这将初始化window.Picture2
作为一个新的对象{}
,如果它没有定义。然而因为这是对真实性的检查,如果Picture2
有以下任何一个假值,它也将被分配一个空对象:
// these are all falsy
0, NaN, null, '', undefined, false
可能不是所有这些情况下所期望的行为,特别是对于0
, NaN
, false
或''
值。
编辑??
"NULLISH COALESCING"操作符现在是ECMAScript标准的一部分,并且已经得到了相当不错的浏览器支持。
所以你用例的语法应该是:
window.Picture2 ?? {};
如果Picture2
等于undefined
或null
,该值将被计算为false,但对其他假值不计算。
如果你想给函数参数赋一个默认值,你现在也可以这样写:
function myfunc(Picture2 = {}){
/* function body */
}
默认参数语法和空合并操作符是唯一正确的分配默认值而没有副作用的方法。
如果window.Picture2
未定义(false),则为window.Picture2
分配一个默认的空对象
它将检查.Picture2
是否已经定义,如果使用了该值,则将Window.Picture2
赋值给一个新的对象字量
如@Christoph所述-如果对象是falsy
,则Picture2
将被分配一个新的对象字面量。
读作:
如果窗口。图2是undefined或null分配空对象窗口。Picture2
如果window.Picture2
未定义(在条件求值中为false),则执行OR (||
),并且window.Picture2
成为空对象。
相关文章:
- Modify Javascript with C#
- JavaScript with PHP SESSION
- Javascript with IE 11 issue
- javascript with()函数获胜'我不适合歌剧、Chrome或Brave
- Javascript with Heroku
- sqlite with javascript with phonegap using build.phonegap.co
- Including html+javascript with javascript
- .post javascript with PHP 以启用 select 语句返回
- Scrape query JavaScript with scrapy
- 正则表达式 JavaScript with punct,space 和 alnum
- writing JavaScript with PHP
- 将字符串从 C# 传递到 Javascript with Phonegap 和 Windows Phone 8
- Javascript with SJCL lib,在 GCM 模式下解密 AES
- Javascript with jquery datepicker using knockout
- Java to JavaScript with NodeJS convertion
- onMouseOver JavaScript with CSS list-style-image
- Appending on javascript with onclick
- javascript with html for stickynotes
- Scraping javascript with R
- Inserting javascript with jQuery .html