自學
有成千上萬的人為了得到一份工作而學習 JavaScript 和 Web 開發。通常,自學的人對 JavaScript 語言的理解並不深刻。
令人驚訝的是,製作複雜的 Web 頁面所需的語言很少。獨立建設全站的人往往對 JavaScript 的基本原理不太瞭解。
我們可以很容易地避免複雜的問題,使用基本技能就可以實現一些效果。依靠 Stack Overflow 就可以很容易地建立一個網站而不需要理解複製的程式碼。
如果您想順利通過 JavaScript 面試,請看看這個教程 提高你的 JS 水平:中級 JavaScript 完整指南
面試
很多科技公司在面試中會考察你對 JS 的理解。一個知識豐富的求職者可以很快地回答這些問題,但是他對語言的理解並不深刻。
以下是 Web 開發面試中經常被問到的概念。理解這些概念的前提是你已經掌握了基本知識,比如迴圈,函式和回撥函式。
概念
- 數值型別 vs. 引用型別 —瞭解如何複製物件、陣列和函式以及如何將它們傳遞到函式中。知道引用型別複製的是什麼。瞭解原始值是通過複製值來複制及傳遞的。
- 作用域 —瞭解全域性作用域、函式作用域及塊作用域的不同。瞭解變數的作用範圍。知道 JavaScript 引擎如何查詢變數。
- 宣告提升 — 瞭解變數和函式宣告會被提升到可用範圍的頂部。瞭解函式表示式不會被提升。
- 閉包 — 知道函式內部建立的函式可以訪問該函式的作用域。知道這種方式允許我們做什麼,比如資料隱藏、記憶以及動態函式變換。
this
— 知道this
繫結的原則。知道它的工作原理,在函式中指代的內容以及為什麼有用。new
— 知道它與物件導向程式設計的關係。知道使用 new 呼叫的函式發生了什麼。瞭解使用 new 生成的物件是如何從函式的原型繼承的。apply
,call
,bind
— 知道每個函式是如何工作的。知道如何使用它們。知道它們對this
做什麼。- 原型 & 繼承 — 瞭解 JavaScript 的繼承是通過
[[Prototype]]
實現的。瞭解如何通過函式及物件建立繼承並通過new
實現繼承。理解__proto__
及prototype
的屬性以及作用。 - 非同步的 JS — 瞭解事件迴圈。理解瀏覽器如何處理一般的使用者輸入、網路請求以及事件。知道如何正確認識和實現非同步程式碼。瞭解 JavaScript 是非同步的和單執行緒的。
- 高階函式 — 瞭解 JavaScript 中的函式是第一類物件以及它的意義。知道從另一個函式返回函式是完全合法的。瞭解閉包及高階函式允許使用的技術。
更多資源
如果上面的連結不夠,那麼還有無數的資源可以幫助你學習這些概念。
我建立了 提高你的 JS 水平:中級 JavaScript 完整指南 這個教程以幫助開發者提高他們的知識。它涵蓋了所有提到的概念甚至更多。
以下是我看過而且值得推薦的一些資源。第一個是我自己寫的。
- Step Up Your JS
- You Don’t Know JS
- JavaScript is Sexy
- javascript.com
- Frontend Masters
- Eloquent JavaScript
祝你面試成功。
打賞支援我翻譯更多好文章,謝謝!
打賞譯者
打賞支援我翻譯更多好文章,謝謝!