ECMAScript 中有5種簡單資料型別

2021-06-16 08:33:08 字數 2275 閱讀 4021

ecmascript 中有5種簡單資料型別(也稱基本資料型別):undefined,null,boolean,number,和string .還有一種複雜資料型別object.

object 本質上是由一組無序的名值對組成的。ecmascript不支援任何建立自定義型別的機制,而所有值最終都將是上述6種資料型別之一。

1:undefined型別: 只有乙個值,即特殊的undefined.在使用var 宣告變數但未對其加以初始化時,這個變數的值就是undefined.

2:  null型別:只有乙個值,從邏輯角度來看,null值表示乙個空物件指標,而這也正是使用typeof 操作符檢測null值時會返回"object"的原因。如果定義的變數準備將來用於儲存物件,那麼最好將該變數初始化為null而不是其他值。這樣一來,只要直接檢查null值就可以知道相應的變數是否已經儲存了乙個物件的引用。

實際上,undefined值是派生自null值的,因此ecma-262規定對他們的相等性測試要返回true.

alert(null==undefined) //true

這裡,位於null和undefined之間的相等操作符(==)總是返回true,不過要注意的是,這個操作符出於比較的目的會轉換其他操作符。

3:boolean型別

該型別只有兩個字面值:true和false.這個兩個值與數字值不是一回事,因此true不一定等於1,而false也不一定等於0.

需要注意的是:boolean 型別的字面值true和false是區分大小寫的。也就是說,true和false(以及其他的混合大小寫形式)都不是boolean值,只是識別符號.

4:number型別

number型別應該是ecmascript中最令人關注的資料型別,這種型別使用ieee754格式來表示整數和浮點數值(浮點數值在某些語言中也被稱為雙精度數值).為支援各種數值型別,ecma-262 定義了不同的數值字面量格式。

除了以十進位制表示外,整數還可以通過八進位制或16進製制的字面值來表示

nan,即非數值(not a number)是乙個特殊的數值,這個數值用於表示乙個本來要返回數值的運算元未返回數值的情況。

nan本身有有兩個非同尋常的特點。首先,任何涉及nan的操作(例如nan/10)都會返回nan,這個特點在多步計算中有可能導致問題。其次,nan與任何值都不相等,包括nan本身.例如:alert(nan==nan) // false

針對nan的這兩個特點,ecmascript定義了isnan()函式。這個函式接受乙個引數,該引數可以是任何型別,而函式會幫我們確定這個引數是否"不是數值"。isnan()在接收到乙個值之後,會嘗試將這個值轉換為數值。某些不是數值的值會直接轉換為數值。例如字串"10"或boolean值。而任何不能被轉換為數值的值都會導致這個函式返回true,

例如:alert(isnan(nan))  //true

alert(isnan(10)); //false (10是乙個數值)

alert(isnan("10"));  //false (可以被轉換成數值10)

alert(isnan("blue")) ; //true(不能轉換成數值)

alert(isnan(true));  //false 可以被轉換成數值1

5:string型別

string型別用於表示有零或多個16位unicode字元組成的字串行,即字串。字串可以由雙引號(")或單引號(')表示。

6:object型別

ecmascript中的物件其實就是一組資料和功能的集合。物件可以通過執行new操作符後跟要建立的物件型別的名稱來建立。而建立object型別的是咧並為其新增屬性和方法,就可以建立自定義物件。例如: var o=new object();

object的每個例項都具有下列屬性和方法:

constructor    ----------儲存著用於建立當前物件的函式。對於前面的例子而言,建構函式(constructor)就是object()

hasownproperty(propertyname) ---------用於檢查給定的屬性在當前物件是例項中(而不是在例項的原型中)是否存在.其中,作為引數的屬性名(propertyname)必須一字串形式指定

isprototypeof (object) --------用於檢查傳入的物件是否是另乙個物件的原型。

propertyisenumerable(propertyname)---------用於檢查給定的屬性是否能夠使用for-in語句來列舉。

tostring()            -----------返回物件的字串表示。

valueof() 返回物件的字串,數值或布林值表示。通常與tostring()方法的返回值相同。

ECMAScript5 Array新增方法

ecmascript5標準發布於2009年12月3日,它帶來了一些新的,改善現有的array陣列操作的方法。如果不考慮相容性的話可以大面積使用了。在es5中,array一共有10個方法 array.isarray array.prototype.indexof array.prototype.las...

ECMAScript 5 中的陣列方法

ecmascript 5定義了9個新的陣列方法來遍歷 對映 過濾 檢測 簡化和搜尋陣列。foreach 方法從頭至尾遍歷陣列,為每個元素呼叫指定的函式。注意,foreach 無法在所有元素都傳遞給呼叫的函式之前終止遍歷。如果要提前終止,必須把foreach 方法放在乙個try塊中,並能丟擲乙個異常。...

C STL中有兩種find

1.開頭引標頭檔案 中的函式 其呼叫形式為 find start,end,value start搜尋的起點,end搜尋的終點,要尋找的value值 如果沒有找到,則返回end。函式的返回值為迭代器或指標,就是位置資訊。容器的表示方法 find a.begin a.end value 所有的返回,均是...