JavaScript 數據類型
字符串值,數值,布爾值,數組,對象。
JavaScript 數據類型
JavaScript 變量能夠保存多種數據類型:數值、字符串值、數組、對象等等:
var length = 7; // 數字 var lastName = "Gates"; // 字符串 var cars = ["Porsche", "Volvo", "BMW"]; // 數組 var x = {firstName:"Bill", lastName:"Gates"}; // 對象
數據類型的概念
在編程過程中,數據類型是重要的概念。
為了能夠操作變量,了解數據類型是很重要的。
如果沒有數據類型,計算機就無法安全地解決這道題:
var x = 911 + "Porsche";
給 "Volvo" 加上 911 有意義嗎?這么做會發生錯誤還是會產生一個結果?
JavaScript 會這樣處理上面的例子:
var x = "911" + "Porsche";
當數值和字符串相加時,JavaScript 將把數值視作字符串。
實例
var x = 911 + "Porsche";
實例
var x = "Porsche" + 911;
JavaScript 從左向右計算表達式。不同的次序會產生不同的結果:
JavaScript:
var x = 911 + 7 + "Porsche";
結果:
918Porsche
JavaScript:
var x = "Porsche" + 911 + 7;
結果:
Porsche9117
在第一個例子中,JavaScript 把 911 和 7 視作數值,直到遇見 "Porsche"。
在第二個例子中,由于第一個操作數是字符串,因此所有操作數都被視為字符串。
JavaScript 擁有動態類型
JavaScript 擁有動態類型。這意味著相同變量可用作不同類型:
實例
var x; // 現在 x 是 undefined var x = 7; // 現在 x 是數值 var x = "Bill"; // 現在 x 是字符串值
JavaScript 字符串值
字符串(或文本字符串)是一串字符(比如 "Bill Gates")。
字符串被引號包圍。您可使用單引號或雙引號:
實例
var carName = "Porsche 911"; // 使用雙引號 var carName = 'Porsche 911'; // 使用單引號
您可以在字符串內使用引號,只要這些引號與包圍字符串的引號不匹配:
實例
var answer = "It's alright"; // 雙引號內的單引號 var answer = "He is called 'Bill'"; // 雙引號內的單引號 var answer = 'He is called "Bill"'; // 單引號內的雙引號
您將在本教程中學到更多有關字符串的知識。
JavaScript 數值
JavaScript 只有一種數值類型。
寫數值時用不用小數點均可:
實例
var x1 = 34.00; // 帶小數點 var x2 = 34; // 不帶小數點
超大或超小的數值可以用科學計數法來寫:
實例
var y = 123e5; // 12300000 var z = 123e-5; // 0.00123
您將在本教程中學到更多有關數值的知識。
JavaScript 布爾值
布爾值只有兩個值:true
或 false
。
實例
var x = true; var y = false;
布爾值經常用在條件測試中。
您將在本教程中學到更多有關條件測試的知識。
JavaScript 數組
JavaScript 數組用方括號書寫。
數組的項目由逗號分隔。
下面的代碼聲明(創建)了名為 cars 的數組,包含三個項目(汽車品牌):
實例
var cars = ["Porsche", "Volvo", "BMW"];
數組索引基于零,這意味著第一個項目是 [0],第二個項目是 [1],以此類推。
您將在本教程中學到更多有關數組的知識。
JavaScript 對象
JavaScript 對象用花括號來書寫。
對象屬性是 name:value 對,由逗號分隔。
實例
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
上例中的對象(person)有四個屬性:firstName、lastName、age 以及 eyeColor。
您將在本教程中學到更多有關對象的知識。
typeof 運算符
您可使用 JavaScript 的 typeof
來確定 JavaScript 變量的類型:
typeof 運算符返回變量或表達式的類型:
實例
typeof "" // 返回 "string" typeof "Bill" // 返回 "string" typeof "Bill Gates" // 返回 "string"
實例
typeof 0 // 返回 "number" typeof 314 // 返回 "number" typeof 3.14 // 返回 "number" typeof (7) // 返回 "number" typeof (7 + 8) // 返回 "number"
typeof 運算符對數組返回 "object",因為在 JavaScript 中數組屬于對象。
Undefined
在 JavaScript 中,沒有值的變量,其值是 undefined
。typeof 也返回 undefined
。
實例
var person; // 值是 undefined,類型是 undefined。
任何變量均可通過設置值為 undefined
進行清空。其類型也將是 undefined
。
實例
person = undefined; // 值是 undefined,類型是 undefined。
Null
在 JavaScript 中,null
是 "nothing"。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null
的數據類型是對象。
您可以把 null
在 JavaScript 中是對象理解為一個 bug。它本應是 null
。
您可以通過設置值為 null
清空對象:
實例
var person = null; // 值是 null,但是類型仍然是對象
您也可以通過設置值為 undefined
清空對象:
實例
var person = undefined; // 值是 undefined,類型是 undefined。
Undefined 與 Null 的區別
Undefined
與 null
的值相等,但類型不相等:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
原始數據
原始數據值是一種沒有額外屬性和方法的單一簡單數據值。
typeof
運算符可返回以下原始類型之一:
- string
- number
- boolean
- undefined
實例
typeof "Bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (假如 x 沒有值)
復雜數據
typeof
運算符可返回以下兩種類型之一:
- function
- object
typeof
運算符把對象、數組或 null
返回 object
。
typeof
運算符不會把函數返回 object
。
實例
typeof {name:'Bill', age:62} // 返回 "object" typeof [1,2,3,4] // 返回 "object" (并非 "array",參見下面的注釋) typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
typeof
運算符把數組返回為 "object
",因為在 JavaScript 中數組即對象。