我在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的一切.;)
void 0将会屈服undefined,正如void X任何人都会屈服X;它更短,并且不能像undefinedcan 那样重新定义。所以与===void 0相比。jQuery.migrateMuteundefined
!0是true。
因此,“翻译”为jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0):
if (jQuery.migrateMute === undefined) {
jQuery.migrateMute = true;
}
Run Code Online (Sandbox Code Playgroud)
然后逗号后面的内容独立于这个执行。