javascript 數(shù)據(jù)類型
javascript 數(shù)據(jù)類型包括:字符串值,數(shù)值,布爾值,數(shù)組,對(duì)象等。
1. javascript 數(shù)據(jù)類型
javascript 變量能夠保存多種數(shù)據(jù)類型:數(shù)值、字符串值、數(shù)組、對(duì)象等等:
var length = 7; // 數(shù)字 var lastname = "gates"; // 字符串 var cars = ["porsche", "volvo", "bmw"]; // 數(shù)組 var x = {firstname:"bill", lastname:"gates"}; // 對(duì)象
2. 數(shù)據(jù)類型的概念
在編程過(guò)程中,數(shù)據(jù)類型是重要的概念。
為了能夠操作變量,了解數(shù)據(jù)類型是很重要的。
如果沒(méi)有數(shù)據(jù)類型,計(jì)算機(jī)就無(wú)法安全地解決這道題:
var x = 911 + "porsche";
給 "volvo" 加上 911 有意義嗎?這么做會(huì)發(fā)生錯(cuò)誤還是會(huì)產(chǎn)生一個(gè)結(jié)果?
javascript 會(huì)這樣處理上面的例子:
var x = "911" + "porsche";
當(dāng)數(shù)值和字符串相加時(shí),javascript 將把數(shù)值視作字符串。
范例
var x = 911 + "porsche";
范例
var x = "porsche" + 911;
javascript 從左向右計(jì)算表達(dá)式。不同的次序會(huì)產(chǎn)生不同的結(jié)果:
javascript:
var x = 911 + 7 + "porsche";
結(jié)果:
918porsche
javascript:
var x = "porsche" + 911 + 7;
結(jié)果:
porsche9117
在第一個(gè)例子中,javascript 把 911 和 7 視作數(shù)值,直到遇見(jiàn) "porsche"。
在第二個(gè)例子中,由于第一個(gè)操作數(shù)是字符串,因此所有操作數(shù)都被視為字符串。
3. javascript 擁有動(dòng)態(tài)類型
javascript 擁有動(dòng)態(tài)類型。這意味著相同變量可用作不同類型:
范例
var x; // 現(xiàn)在 x 是 undefined var x = 7; // 現(xiàn)在 x 是數(shù)值 var x = "bill"; // 現(xiàn)在 x 是字符串值
4. javascript 字符串值
字符串(或文本字符串)是一串字符(比如 "bill gates")。
字符串被引號(hào)包圍。您可使用單引號(hào)或雙引號(hào):
范例
var carname = "porsche 911"; // 使用雙引號(hào) var carname = 'porsche 911'; // 使用單引號(hào)
您可以在字符串內(nèi)使用引號(hào),只要這些引號(hào)與包圍字符串的引號(hào)不匹配:
范例
var answer = "it's alright"; // 雙引號(hào)內(nèi)的單引號(hào) var answer = "he is called 'bill'"; // 雙引號(hào)內(nèi)的單引號(hào) var answer = 'he is called "bill"'; // 單引號(hào)內(nèi)的雙引號(hào)
5. javascript 數(shù)值
javascript 只有一種數(shù)值類型。
寫(xiě)數(shù)值時(shí)用不用小數(shù)點(diǎn)均可:
范例
var x1 = 34.00; // 帶小數(shù)點(diǎn) var x2 = 34; // 不帶小數(shù)點(diǎn)
超大或超小的數(shù)值可以用科學(xué)計(jì)數(shù)法來(lái)寫(xiě):
范例
var y = 123e5; // 12300000 var z = 123e-5; // 0.00123
6. javascript 布爾值
布爾值只有兩個(gè)值:true 或 false。
范例
var x = true; var y = false;
布爾值經(jīng)常用在條件測(cè)試中。
7. javascript 數(shù)組
javascript 數(shù)組用方括號(hào)書(shū)寫(xiě)。
數(shù)組的項(xiàng)目由逗號(hào)分隔。
下面的代碼聲明(創(chuàng)建)了名為 cars 的數(shù)組,包含三個(gè)項(xiàng)目(汽車(chē)品牌):
范例
var cars = ["porsche", "volvo", "bmw"];
數(shù)組索引基于零,這意味著第一個(gè)項(xiàng)目是 [0],第二個(gè)項(xiàng)目是 [1],以此類推。
8. javascript 對(duì)象
javascript 對(duì)象用花括號(hào)來(lái)書(shū)寫(xiě)。
對(duì)象屬性是 name:value 對(duì),由逗號(hào)分隔。
范例
var person = {firstname:"bill", lastname:"gates", age:62, eyecolor:"blue"};
上例中的對(duì)象(person)有四個(gè)屬性:firstname、lastname、age 以及 eyecolor。
9. typeof 運(yùn)算符
您可使用 javascript 的 typeof 來(lái)確定 javascript 變量的類型:
typeof 運(yùn)算符返回變量或表達(dá)式的類型:
范例
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 運(yùn)算符對(duì)數(shù)組返回 "object",因?yàn)樵?javascript 中數(shù)組屬于對(duì)象。
10. undefined
在 javascript 中,沒(méi)有值的變量,其值是 undefined。typeof 也返回 undefined。
范例
var person; // 值是 undefined,類型是 undefined
任何變量均可通過(guò)設(shè)置值為 undefined 進(jìn)行清空。其類型也將是 undefined。
范例
person = undefined; // 值是 undefined,類型是 undefined
11. 空值
空值與 undefined 不是一回事。
空的字符串變量既有值也有類型。
范例
var car = ""; // 值是 "",類型是 "string"
12. null
在 javascript 中,null 是 "nothing"。它被看做不存在的事物。
不幸的是,在 javascript 中,null 的數(shù)據(jù)類型是對(duì)象。
您可以把 null 在 javascript 中是對(duì)象理解為一個(gè) bug。它本應(yīng)是 null。
您可以通過(guò)設(shè)置值為 null 清空對(duì)象:
范例
var person = null; // 值是 null,但是類型仍然是對(duì)象
您也可以通過(guò)設(shè)置值為 undefined 清空對(duì)象:
范例
var person = undefined; // 值是 undefined,類型是 undefined
13. undefined 與 null 的區(qū)別
undefined 與 null 的值相等,但類型不相等:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
14. 原始數(shù)據(jù)
原始數(shù)據(jù)值是一種沒(méi)有額外屬性和方法的單一簡(jiǎn)單數(shù)據(jù)值。
typeof 運(yùn)算符可返回以下原始類型之一:
- string
- number
- boolean
- undefined
范例
typeof "bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (假如 x 沒(méi)有值)
15. 復(fù)雜數(shù)據(jù)
typeof 運(yùn)算符可返回以下兩種類型之一:
- function
- object
typeof 運(yùn)算符把對(duì)象、數(shù)組或 null 返回 object。
typeof 運(yùn)算符不會(huì)把函數(shù)返回 object。
范例
typeof {name:'bill', age:62} // 返回 "object" typeof [1,2,3,4] // 返回 "object" (并非 "array",參見(jiàn)下面的注釋) typeof null // 返回 "object" typeof function myfunc(){} // 返回 "function"
typeof 運(yùn)算符把數(shù)組返回為 "object",因?yàn)樵?javascript 中數(shù)組即對(duì)象。