跳至主要内容

17 篇文件帶有標籤「JavaScript」

檢視所有標籤

.call 和 .apply 的差異

.call跟.apply 都可以直接呼叫函式並且改變函式內 this 的指向,兩者最主要的差異是傳入的參數形式不同。

== 和 === 的差異

== 是鬆散比較運算子、===是嚴格比較運算子,兩者最大的不同:==是當等號兩邊 values 的型別不同時,會強制轉換資料型別與值,而 === 不會。

Anonymous function 匿名函式有哪些應用場景?

匿名函式 anonymous function 是指在 JavaScript 中沒有名稱的函式,通常用於一次性的操作或者作為參數傳遞給其他函式,此外,匿名函式不會在編譯階段被提升到作用域的上方(這是函式表達式的特性),因此它們在程式碼執行時才會被解析。匿名函式有許多應用場景,以下是一些常見的例子:

Event loop 事件循環

JavaScript 是單執行緒的語言,所以一次只能執行一件事。事件循環 Event loop 是可以確保作為單行緒語言的 Javascript 可以在執行環境(瀏覽器或Node.js)中執行非同步 (asynchronous)程式碼而不會阻塞主執行緒的機制。

getElementsByTagName() 手寫實作

getElementsByTagName() 是一個 DOM API,可以用來取得指定標籤名稱的 DOM 元素,並且會回傳一個 HTMLCollection 物件。

Hosting 提升

Hosting 提升指的是在執行 JavaScript 程式碼之前, JavaScript 引擎會將變數和函式的宣告提升到作用域的頂端。

let, var ,const 的差異

使用 let、var 和 const 宣告變數時分別在:作用域、初始化、重複宣告、重新賦值、提升時有不同的行為。