.call 和 .apply 的差異
.call跟.apply 都可以直接呼叫函式並且改變函式內 this 的指向,兩者最主要的差異是傳入的參數形式不同。
.call跟.apply 都可以直接呼叫函式並且改變函式內 this 的指向,兩者最主要的差異是傳入的參數形式不同。
透過``我們可以適當的控制腳本在瀏覽器載入的時機。
== 是鬆散比較運算子、===是嚴格比較運算子,兩者最大的不同:==是當等號兩邊 values 的型別不同時,會強制轉換資料型別與值,而 === 不會。
匿名函式 anonymous function 是指在 JavaScript 中沒有名稱的函式,通常用於一次性的操作或者作為參數傳遞給其他函式,此外,匿名函式不會在編譯階段被提升到作用域的上方(這是函式表達式的特性),因此它們在程式碼執行時才會被解析。匿名函式有許多應用場景,以下是一些常見的例子:
閉包是什麼?
事件委派 event delegation
JavaScript 是單執行緒的語言,所以一次只能執行一件事。事件循環 Event loop 是可以確保作為單行緒語言的 Javascript 可以在執行環境(瀏覽器或Node.js)中執行非同步 (asynchronous)程式碼而不會阻塞主執行緒的機制。
Hosting 提升指的是在執行 JavaScript 程式碼之前, JavaScript 引擎會將變數和函式的宣告提升到作用域的頂端。
使用 let、var 和 const 宣告變數時分別在:作用域、初始化、重複宣告、重新賦值、提升時有不同的行為。
Map和WeakMap
null
原型 (Prototype)
同步 synchronous
在 JavaScript 中this的指向會根據不同呼叫的方式而有不同的結果,以下分別列出幾種this的運作方式:
防抖和節流函式是前端常見的效能優化的技巧,透過這兩個函式可以有效的減少函式被觸發的次數,達到效能優化的目的。