在IT界,需要大量的javascript開發(fā)者。如果這個角色能夠最佳地展現(xiàn)你的能力,那么你有許多機會換家公司,以及提高薪水。但是在你被公司錄取之前,你需要展現(xiàn)你的技術(shù),以便通過面試環(huán)節(jié)。在這篇文章中,我會展示你五個典型的問題。
問題1: 范圍(Scope)
思考以下代碼:
(function() { var a = b = 5;})();console.log(b);
控制臺(console)會打印出什么?
答案
上述代碼會打印出 5
。
這個問題的陷阱就是,在立即執(zhí)行函數(shù)表達式(IIFE)中,有兩個命名,但是其中變量是通過關(guān)鍵詞 var
來聲明的。這就意味著 a
是這個函數(shù)的本地變量。與此相反,b
是屬于這個函數(shù)的全局變量的。
這個問題另一個陷阱就是,在函數(shù)中他沒有使用 "嚴格模式" ( 'use strict';
)。如果 嚴格模式 開啟,那么代碼就會報出未捕獲引用錯誤(Uncaught ReferenceError):b沒有定義。記住嚴格模式要求,如果這個是預(yù)期的行為,你需要明確地引用全局變量,。因此,你需要像下面這么寫:
(