原始(Primitive)型別

2021-09-08 13:28:32 字數 754 閱讀 4657

在 js 中,存在著 6 種原始值,分別是:

首先原始型別儲存的都是值,是沒有函式可以呼叫的,比如undefined.tostring()

此時你肯定會有疑問,這不對呀,明明'1'.tostring()是可以使用的。其實在這種情況下,'1'已經不是原始型別了,而是被強制轉換成了string型別也就是物件型別,所以可以呼叫tostring函式。

除了會在必要的情況下強轉型別以外,原始型別還有一些坑。

其中 js 的number型別是浮點型別的,在使用中會遇到某些 bug,比如0.1 + 0.2 !== 0.3,但是這一塊的內容會在高階部分講到。string型別是不可變的,無論你在string型別上呼叫何種方法,都不會對值有改變。

另外對於null來說,很多人會認為他是個物件型別,其實這是錯誤的。雖然typeof null會輸出object,但是這只是 js 存在的乙個悠久 bug。在 js 的最初版本中使用的是 32 位系統,為了效能考慮使用低位儲存變數的型別資訊,000開頭代表是物件,然而null表示為全零,所以將它錯誤的判斷為object。雖然現在的內部型別判斷**已經改變了,但是對於這個 bug 卻是一直流傳下來。

ECMAScript 原始型別

typeof運算子對於null值會返回 object 當宣告的變數未初始化時,該變數的預設值是underfined 值underfined不同於未定義的值。typeof運算子並不真正區分這兩種值 var otemp alert typeof otemp alert typeof otemp2 輸出都...

原始型別或內建型別

定址儲存器 本課直接建立在 1.3 第乙個變數的第乙個變數 部分的材料上。在上一節中的變數上,我們討論了乙個事實,即變數是乙個可以用來儲存資訊的記憶體的名稱的事實。簡要概括起來,計算機的隨機訪問儲存器 ram 可供程式使用。當乙個變數被定義時,該變數的一塊記憶體被設定為該變數。記憶體的最小單位是乙個...

原始型別之undefined

undefined undefined型別只有乙個值,即undefined。當宣告的變數未初始化時,該變數的預設值為undefined。var otemp alert otemp undefined 輸出true 說明沒有賦值的otemp等於undefined alert typeof otemp ...