js 數據類型

NaN:保留字(表明數據類型不是數字)

undefined:對象屬性或方法不存在,或聲明瞭變量但從未賦值。
即當你使用了對象未定的屬性或者未定義的方法時或當你聲明一個變量,但你確從未對其進行賦值,便對
其進行操作(當然賦值除外),會有"undefined"提示null 值指出一個變量中沒有包含有效的數據。

產生 null 的原因是:對一個變量顯式地賦值爲 null。 包含 null 的表達式之間的任何操作。

Boolean 表達式
一個值爲 true 或者 false 的表達式。
如果需要,非 Boolean 表達式也可以被轉換爲 Boolean 值,但是要遵循下列規則:所有的對象都被當作 true。當且僅當字符串爲空時,該字符串被當作 false。
null 和 undefined 被當作 false。
當且僅當數字爲零時,該數字被當作 false。

字符串比較
兩個字符序列之間的比較。
除非在進行比較操作的函數中指出,所有的字符串比較操作都是二進制的。
在英語中,二進制比較區分大小寫;而文本比較則不區分。

數值表達式
數值表達式指的是任何值爲數字的表達式。這種表達式的元素可以包括關鍵字、變量、文字和運算
符的任意組合,只要此組合能夠生成一個數字。在特定的情況下,如果可以的話,字符串也可以被
轉換爲數字。

構造函數
一種 JScript 函數,具有兩個特殊的性質:由 new 運算符來調用此函數。 通過 this 關鍵字將新
創建對象的地址傳遞到此函數。 強列建議使用構造函數來初始化新的對象。

ASCII 字符集
美國標準信息交換編碼 (ASCII) 的 7 位字符集,它被廣泛地用來表示標準的美國鍵盤上的字母和符號。

ASCII 字符集與 ANSI 字符集中的頭 128 個字符 (0–127) 完全相同。Automation 對象通過
Automation 接口可以被其他應用程序或編程工具使用的對象。

全球標準時間 (UTC)
全球標準時間指的是由世界時間標準設定的時間。原先也被稱爲格林威治標準
時間或者 GMT。

Jscript 有三種主要數據類型、兩種複合數據類型和兩種特殊數據類型。
主要(基本)數據類型是:字符串 數值 布爾
複合(引用)數據類型是:對象 數組
特殊數據類型是:Null Undefined

null = = undefined
true

"NaN" = = NaN
false

5 = = NaN
false

NaN = = NaN
false

NaN != NaN
true

false = =0
true

true = =1
true

true = = 2
false

undefined = = 0
false

null = = 0
false

"5" = = 5
true


1.類型分析:

js中的數據類型有undefined,boolean,number,string,object等5種,前4種爲原始類型,第5種爲引用類型。
var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;

alert(typeof a); //顯示"undefined"
alert(typeof a1); //顯示"undefined"
alert(typeof a2); //顯示"boolean"
alert(typeof a3); //顯示"number"
alert(typeof a4); //顯示"string"
alert(typeof a5); //顯示"object"
alert(typeof a6); //顯示"object"
alert(typeof a7); //顯示"number"
alert(typeof a8); //顯示"undefined"

從上面的代碼中可以看出未定義的值和定義未賦值的爲undefined,null是一種特殊的object,NaN是一種特殊的number。

2.比較運算

var a1; //a1的值爲undefined
var a2 = null;
var a3 = NaN;

alert(a1 == a2); //顯示"true"
alert(a1 != a2); //顯示"false"

alert(a1 == a3); //顯示"false"
alert(a1 != a3); //顯示"true"

alert(a2 == a3); //顯示"false"
alert(a2 != a3); //顯示"true"

alert(a3 == a3); //顯示"false"
alert(a3 != a3); //顯示"true"

從上面的代碼可以得出結論:(1)undefined與null是相等;(2)NaN與任何值都不相等,與自己也不相等。


Null 數據類型
在 Jscript 中數據類型 null 只有一個值:null。關鍵字 null 不能用作函數或變量的名稱。

包含 null 的變量包含“無值”或“無對象”。換句話說,該變量沒有保存有效的數、字符串、boolean、數組或對象。可以通過給一個變量賦 null 值來清除變量的內容。

請注意,在 Jscript 中,null 與 0 不相等(與在 C 和 C++ 中不同)。同時應該指出的是,Jscript中 typeof 運算符將報告 null 值爲 Object 類型,而非類型 null。這點潛在的混淆是爲了向下兼容。

Undefined 數據類型
如下情況使返回 undefined 值:

對象屬性不存在,
聲明瞭變量但從未賦值。
注意不能通過與 undefined 做比較來測試一個變量是否存在,雖然可以檢查它的類型是否爲“undefined”。在以下的代碼範例中,假設程序員想測試是否已經聲明變量 x :

// 這種方法不起作用
if (x == undefined)
// 作某些操作
// 這個方法同樣不起作用- 必須檢查
// 字符串 "undefined"
if (typeof(x) == undefined)
// 作某些操作
// 這個方法有效
if (typeof(x) == "undefined")
// 作某些操作
考慮將 undefined 值與null做比較。

針對上面的判斷,如果變量 x 沒有定義的話 if (x == undefined) {...}會拋出exception:變量x未定義,這句判斷不會執行,可用try{...}catch(ex){...} 捕獲。

不管x是否已經定義,使用 if (typeof(x) == undefined) 都會判斷爲 false。


someObject.prop == null;
如下情況時,比較的結果爲 true,

如果屬性 someObject.prop 包含 null 值,
如果屬性 someObject.prop 不存在。
要檢查一個對象屬性是否存在,可以使用新的 in 運算符:
if ("prop" in someObject)
// someObject 有屬性 'prop'

在JavaScript中,null與undefined一度使人迷惑。下面的分析,有利於你更清晰的認知它(或者讓你更迷惑):

- null是關鍵字;undefined是Global對象的一個屬性

- null是對象(空對象, 沒有任何屬性和方法);undefined是undefined類型的值。試試下面的代碼:

document.writeln(typeof null); //return object
document.writeln(typeof undefined); //return undefined

- 對象模型中,所有的對象都是Object或其子類的實例,但null對象例外:
document.writeln(null instanceof Object); //return false

- null“等值(==)”於undefined,但不“全等值(===)”於undefined:
document.writeln(null == undefined); //return true
document.writeln(null === undefined); //return false

- 運算時null與undefined都可以被類型轉換爲false,但不等值於false:
document.writeln(!null, !undefined); //return true,true
document.writeln(null==false); //return false
document.writeln(undefined==false); //return false
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章