这个Javascript Snippet做了什么(jQuery迁移文件的开始)

s0u*_*rce 6 javascript jquery

我在jQuery Migrate v1.1.1中找到了这段代码

jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){/* anything */}
Run Code Online (Sandbox Code Playgroud)

我真的很想知道两件事:

1)什么===void 0意思?

2)为什么这些条件后跟逗号?我的测试告诉我它总会被执行.

它不是我真的需要知道,但我真的很感兴趣,因为我以为我知道关于JS的一切.;)

Ama*_*dan 4

void 0将会屈服undefined,正如void X任何人都会屈服X;它更短,并且不能像undefinedcan 那样重新定义。所以与===void 0相比。jQuery.migrateMuteundefined

!0true

因此,“翻译”为jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0)

if (jQuery.migrateMute === undefined) {
  jQuery.migrateMute = true;
}
Run Code Online (Sandbox Code Playgroud)

然后逗号后面的内容独立于这个执行。