瞎扯
在JS中,經(jīng)常會(huì)遇到下面這種 代碼, 到底 在 function 前面加一個(gè) 一元操作符, 有什么作用呢?
作用是 把該函數(shù)變成自執(zhí)行函數(shù)
+function(){}();
這里的加號(hào),可以替換成 ~ , * , + , - , !
等其他一元操作符捻撑,
其效果相當(dāng)于:
(function() { console.log("Foo!"); })();
// or
(function() { console.log("Foo!"); }());
如果沒有這個(gè)加號(hào)的話习瑰,解析器會(huì)認(rèn)為function是一個(gè)函數(shù)聲明的開始骗村,而后面()將會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤蜓席。
在function前面加上+號(hào)時(shí)吏垮,就變成了一個(gè)函數(shù)表達(dá)式,而函數(shù)表達(dá)式后面又添加了一個(gè)()就變成了一個(gè)立即執(zhí)行的函數(shù)了宪躯。