鍍金池/ 問答/HTML/ ( 0, eval )( "1+1" )路過的大牛來解釋下,

( 0, eval )( "1+1" )路過的大牛來解釋下,這行代碼為啥可以這么寫?啥意思

今天偶然看到這么一句代碼:

(0, eval)( "1+1" );    //2

于是我仿照了一個(gè):

( 0, function( a ) {
    console.log( a );        //"hello world"
} )( "hello world" );

( function( a ) {
    console.log( a );        //為啥不傳到這里???
}, function( b ) {
    console.log( b );        //"hello world"
} )( "hello world" );

瞬間????飛過,哪位大神能解釋下?

回答
編輯回答
伐木累

1.小括號的用法之一是執(zhí)行單個(gè)或多個(gè)表達(dá)式,并返回最后一個(gè)表達(dá)式的值,多個(gè)表達(dá)式之間需要用逗號“,”分隔開
例:(1,2+3,4+5,6)//代碼會(huì)被一次執(zhí)行,最后將6作為返回值
2.自執(zhí)行匿名函數(shù)(function(){})()
所以你這個(gè)可以看做等于(eval)('1+1')
再次等于 eval('1+1')

2018年3月8日 15:56
編輯回答
雨蝶

你得理解逗號是什么意思
https://developer.mozilla.org...
最后一個(gè)才會(huì)有效

2017年6月3日 02:13