ECMAScript的資料型別注意點

2021-08-15 17:12:13 字數 1594 閱讀 4105

ecmacript包含6中資料型別:

五種基本資料型別:number、string、boolean、undefined、null

一種複雜資料型別:object

1、特殊知識點:

(1)typeof null->null 原因:null是乙個空的物件引用

(2)safari5及之前的版本,chrome7及之前版本在對正規表示式呼叫typeof時返回"function",其他瀏覽器返回"object".

(3)從技術角度講,函式在ecmascript中是物件,不是一種資料型別,然而,函式也確實有一些特殊的屬性,因此通過typeof來區分函式和其他物件是有必要的。

(4)undefined:可表示乙個未宣告或未初始化的變數(ecmascript3 引入undefined,用於區分空物件指標和空變數)

null:表示乙個空物件指標

2、undefined和null

(1)如果定義的變數準備儲存乙個物件,那麼最好將該變數初始化為null而不是其他值。這樣一來,又要直接檢查null值就可以知道相應的變數是否已經儲存了乙個物件的引用。

eg:if(num!=null)

(2)undefined是派生自null的,則有alert(null==undefined);//true

儘管null和undefined有這樣的關係但他們的用途完全不同。

(3)無論在什麼情況下沒有必要把乙個變數的值顯示的設定為undefined,但同樣的規則對null不適用。(只要意在儲存物件的變數還沒有真正儲存物件,就應該明確的讓該變數儲存null值)這樣做不僅可以體現null作為空物件的指標的慣例,而且也有助於區分null和undefined

3、boolean:boolean()函式可將其他型別值轉換為boolean值(true/false),在if( )語句中會自行呼叫boolean()方法。

4、number:

(1)浮點數的問題:0.1+0.2 != 0.3,而是0.30000000000004,關於浮點數值計算會產生捨入誤差問題,有一點需要明確:這是使用基於ieee754數值的浮點計算的通病,ecmascript並非獨此一家;其他使用相同數值格式的語言也存在這個問題。(另外儲存浮點數所需的記憶體是整數的2倍)

(2)ecmascript表示的數值範圍及極端值

number.min_value:ecmascript能表示的最小數值

number.max_value:ecmascript能表示的最大數值

number.negative_infinity=-infinity極小值

number.positive_infinity=infinity極大值

(infinity不能用於計算)

使用isfinite()可用於判斷數值是否在ecmascript表示的數值範圍之內

5、nan:即非數值,是乙個特殊的數值,這個數值用於表示乙個本來要返回數值的運算元未返回的情況(這樣就不會丟擲錯誤了)有isnan()用於判定。

6、tostring():null和undefined沒有這個方法

string():可以將null和undefined轉換為字串。可以將任何型別的值轉換為string型別。

注意:要把某個值轉換為字串,可以使用"+"把它與乙個字串(" ")加在一起。

js(二) ECMAScript基礎之資料型別

如何使用變數 var age 10,name zs 變數在記憶體中的儲存 簡單資料型別 number string boolean undefined null number型別 十進位制var num 9 進行算數計算時,八進位制和十六進製制表示的數值最終都將被轉換成十進位制數值。十六進製制 va...

ECMAScript 中有5種簡單資料型別

ecmascript 中有5種簡單資料型別 也稱基本資料型別 undefined,null,boolean,number,和string 還有一種複雜資料型別object.object 本質上是由一組無序的名值對組成的。ecmascript不支援任何建立自定義型別的機制,而所有值最終都將是上述6種資...

ECMAScript型別轉換

ecmascript 的 boolean 值 數字和字串的原始值的有趣之處在於它們是偽物件,這意味著它們實際上具有屬性和方法。例如,要獲得字串的長度,可以採用下面的 var scolor red alert scolor.length 輸出 3 儘管 red 是原始型別的字串,它仍然具有屬性 len...