原始值
在 JavaScript 中,**原始型別**(primitive value,primitive data type)是指非 物件 且沒有 方法 或 屬性 的資料。共有 7 種原始資料型別。
大多數情況下,原始值在語言實現的最低級別直接表示。
所有原始型別都是不可變的;也就是說,它們不能被修改。將原始型別本身與分配了原始值的變數混淆是很重要的。變數可以重新分配給一個新值,但是現有的值不能像物件、陣列和函式那樣被修改。該語言不提供修改原始值的方法。
原始型別沒有方法,但仍然表現得好像有。當訪問原始型別上的屬性時,JavaScript 會將該值自動裝箱成一個包裝器物件,並在該物件上訪問屬性。例如,"foo".includes("f") 會隱式建立一個 String 包裝器物件,並在該物件上呼叫 String.prototype.includes()。這種自動裝箱行為在 JavaScript 程式碼中是不可觀察的,但它是理解各種行為的一個很好的心智模型——例如,為什麼“修改”原始型別不起作用(因為 str.foo = 1 不是將值賦給 str 本身的 foo 屬性,而是賦給一個短暫存在的包裝器物件)。