本篇系列文為《You Don't Know JS》的讀書筆記,並搭配其他補充資料,寫下自己對這門語言的理解。
作為前端工程師,JavaScript 的各種實作細節是無法避開的課題,在一次次閱讀各種文件和文章,加上工作中累積的實作經驗,也算是對 JavaScript 建立起了相關的知識體系。於是就想藉著這次讀書筆記的機會,來和大家分享我所知道的 JavaScript。
所以說......就是要搞懂 JavaScript 啦!之前搞不懂的、一知半解的、模模糊糊的,這一次通通給他弄懂!
原生原型(Native Prototypes) 延續之前對物件原型的討論,每個內建型別建構子也都擁有自己的 prototype 物件,如 Array.proto...
JS 的數字具有以下特徵: 包含「整數(integer)」和「小數/浮點數(float)」 JS 沒有真正的整數,整數只是不包含小數部分一個的浮點數 小數部分...
接著來看看那些特殊的數字。 NaN 如果使用了並非 number 的值進行算術操作,操作失敗的結果則會產生一個不合法的 number,也就是 NaN。它在字面上...
陣列(Array) 所謂的陣列,就是一個以數字作為索引的集合。與其他語言相比,JS 的陣列具有以下特色: 同個陣列內不限制元素的型別 JS 並非強型別的語言...
類陣列(Array-Likes) 類陣列與陣類相似但有所不同,在 JS 中被歸類為「物件」,Array.isArray 的檢測為 false。主要有以下特徵:...
特殊值 不是值的值 undefined 型別和 null 型別,都僅有它們自己一個值。這兩種型別作為「空值」或「沒有值」,在許多情況常被視為可以互換,而有時候開...
在 JS 中,轉換值的型別大致可分為兩種方式,一種是明確的,一種是隱含的,而不論是哪一種,JS 對於轉換值的型別常慣例統稱為「強制轉型(coercion)」。...
ToString ToString 定義了一個非 string 該如何以 string 表現。除了 null 與 undefined 沒有包裝物件以外,其他基本...
ToPrimitive 物件與陣列的強制轉型將觸發 ToPrimitive 操作,它首先會判斷要轉型為哪種純量基本值,並根據要轉換的型別執行不同的行為。 b...
明確轉型 這裡再來看一次在 ToString 部分提到過的,各型別如何轉型至 string: // Number console.log(String(42))...