JS的資料型別

2021-09-25 01:55:58 字數 1075 閱讀 2342

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

首先原始型別儲存的都是值,是沒有函式可以呼叫的。但注意有的基本型別會在呼叫函式時被強制轉換!例如:『1』.tostring()。

原始型別中存在的一些坑:

js 的number型別是浮點型別的,在使用中會遇到某些 bug,比如 0.1 + 0.2 !== 0.3 ,因為所有的小數都只是乙個近似值。

string型別是不可變的,無論你在string型別上呼叫何種方法,都不會對值有改變。

對於null來說,很多人會認為他是個物件型別,其實這是錯誤的。雖然typeof null會輸出object。那是因為在 js 的最初版本中使用的是 32 位系統,為了效能考慮使用低位儲存變數的型別資訊,000開頭代表是物件,然而null表示為全零,所以將它錯誤的判斷為object

物件型別和原始型別不同的是,原始型別儲存的是,物件型別儲存的是位址(指標)。當我們將變數賦值給另外乙個變數時,複製的是原本變數的位址(指標),若修改其中乙個,則另乙個也是相同的變化。

若函式引數是物件的話:

typeof對於原始型別來說,除了null都可以顯示正確的型別。typeof對於物件來說,除了函式都會顯示object,所以說typeof並不能準確判斷變數到底是什麼型別。

typeof null //「object」

typeof console.log // 『function』

想判斷乙個物件的正確型別,這時候可以考慮使用instanceof,因為內部機制是通過原型鏈來判斷的。但instanceof也不是百分之百可信的,特別是當存在多個frame或多個window之間的互動時,instanceof所給出的結果有可能是錯誤的。

JS的資料型別

number型別 js不去分別整數和浮點數。字串型別 以單引號或雙引號括起來的任意文字。es6標準新增了多行字串 字串.這個字元是數字1左邊英文狀態下的字元,叫反單引號。字串之間用加號連線,而不是php的點連線。es6也新增了一種模版字串 字串是不可變的,所謂字串的改變就是新建了乙個新的字串,然後把...

js的資料型別

資料型別 js中有六種資料型別,包括五種基本資料型別 number,string,boolean,null,undefined 和一種混合資料型別 object undefined只有乙個值,即undefined值。使用var宣告了變數,但未給變數初始化值,那麼這個變數的值就是undefined n...

JS的資料型別

js有六種資料型別,包括五種基本資料型別 number,string,boolean,undefined,null 和一種複雜資料型別 object 1.number型別 number型別包含整數和浮點數 浮點數數值必須包含乙個小數點,且小數點後面至少有一位數字 兩種值。nan 非數字型別。特點 涉...