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 布爾值

布爾值只有兩個值:truefalse

實例

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。

親自試一試

空值

空值與 undefined 不是一回事。

空的字符串變量既有值也有類型。

實例

var car = "";                // 值是 "",類型是 "string"

親自試一試

Null

在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。

不幸的是,在 JavaScript 中,null 的數據類型是對象。

您可以把 null 在 JavaScript 中是對象理解為一個 bug。它本應是 null

您可以通過設置值為 null 清空對象:

實例

var person = null;           // 值是 null,但是類型仍然是對象

親自試一試

您也可以通過設置值為 undefined 清空對象:

實例

var person = undefined;           // 值是 undefined,類型是 undefined。

親自試一試

Undefined 與 Null 的區別

Undefinednull 的值相等,但類型不相等:

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 中數組即對象。

課外閱讀

JavaScript 高級教程: