javascript:區域環境裡,變數宣告問題!

(function() {
   var a = b = 5;
})();
 
console.log(b);

這時b會是5,因為其實上述這段程式碼如下:

(function() {
   var a = window.b = 5;
})();
 
console.log(b);

a是區域變數,所以在local裡是5,但在全域環境下是undefined,但b是全域變數,所以在外面是5,算是個陷阱,寫code時盡量別這樣用!

參考:http://blog.livecoding.tv/2016/09/23/livecoding-tv-quiz-of-the-day/