ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。
1、typeof運算子
ECMAScript提供了typeof運算子來判斷一個值是否在某種類型的範圍內。可以使用這種運算子來判斷一個值是否表示一種原始類型;如果它是原始類型,還可以判斷它表示哪種原始類型。
typeof運算子有一個參數,即要檢查的變數或值。
對變數或值調用typeof運算子將返回下列值之一:
◊ "undefined" —— Undefined類型變數
◊ "boolean" —— Boolean類型變數
◊ "number" —— Number類型變數
◊ "string" —— String類型變數
◊ "object" —— 參考型別或Null類型變數
var str = 'Test';alert(typeof str); // output "string"alert(typeof 100); // output "number"
2、Undefined類型
Undefined類型只有一個值,即undefined。當聲明的變數未初始化時,該變數的預設值為 undefined。
var oTemp;alert(oTemp == undefined); // output "true"alert(typeof oTemp); // output "undefined"
typeof對未聲明的變數返回 "undefined"。
// var oTemp;alert(typeof oTemp); // output "undefined"
當函數沒有傳回值時,返回的也是值undefined。
function fnTest() { // leave the function blank }alert(fnTest() == undefined); // output "true"
3、Null類型
另一種只有一個值的類型是Null,它只有一個專用值null,即它的字面值。值undefined實際上是從值null派生來的,因此ECMAScript把它們定義為相等的。
alert(null == undefined); // output "true"
儘管兩個值相等,但它們的含義不同。undefined是聲明了變數但未對其初始化時賦予該變數的值,null則用於表示尚未存在的對象。
4、Boolean類型
Boolean類型是ECMAScript中最常用的類型之一。它有兩個值true和false。
5、Number類型
ECMA-262中定義的最特殊的類型是Number型。這種類型既可以表示32位的整數,也可以表示64位的浮點數。直接輸入的任何數字都被看作Number型的字面值。Number有一個特殊值NaN,表示非數(Not a Number)。NaN情況發生在類型(String、Boolean)轉換失敗時。NaN不能用於算術計算,NaN與自身不相等。
使用函數isNan()判斷是否為非數。
alert(NaN == NaN); // output "false"alert(isNaN("blue")); // output "true"alert(isNaN("123")); // output "false"
6、String類型
String類型的獨特之處在於,它是唯一沒有固定大小的原始類型。可以用字串儲存0或更多的Unicode字元,由16位整數表示。
字串中每個字元都有特定的位置,首字元從位置0開始,第二個字元在位置1,依次類推。
字串字面量是有雙引號(")或單引號(')聲明的。由於ECMAScript沒有字元類型,所以可以使用這兩種標記法中的任何一種。