變量賦值問題

(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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章