(function(){
var a = b = 3;
})();
console.log(typeof a);//undefined
console.log(typeof b);//number
解析:
首先理解一句話是在立即執行函數體裏面var a = b = 3;對這個進行拆解一下(賦值過程從左到右)
b = 3;
var a = b;
變量b是一個全局變量
變量a在封閉的立即執行函數作用域內的局部變量
所以typeof a是undefined typeof b 是number
在非嚴格模式下,如果在嚴格模式下(use strict)下,聲明var a = b = 3;將產生一個運行時的錯誤:
ReferenceError:b is not defined