值類型(基本類型):字符串(String)、數(shù)字(Number)、布爾(Boolean)、對空(Null)、未定義(Undefined)、Symbol。 引用數(shù)據(jù)類型:對象(Object)、數(shù)組(Array)、函數(shù)(Function)。
數(shù)據(jù)類型用于以編程語言對一種特定類型的數(shù)據(jù)進行分類。
例如,數(shù)字和字符串是不同類型的數(shù)據(jù),JavaScript將對其進行不同的處理。
JavaScript變量可以包含許多數(shù)據(jù)類型:數(shù)字,字符串,數(shù)組,對象等:
var length = 4;// Number 數(shù)字 var firstName = "Vishal"; // String 字符串 var user = {firstName:"Vishal", age:22}; // Object 對象 var fruits = ["Apple", "Mango", "Banana"];// Array 數(shù)組
JavaScript是一種松散類型或動態(tài)語言。JavaScript中的變量并不直接與任何特定的值類型相關(guān)聯(lián),并且可以為所有變量分配(并重新分配)所有類型的值。
var x = 20; // x 是一個數(shù)字 x = "VISHAL"; // x 是一個字符串 x = true; // x 是一個布爾值測試看看?/?
JavaScript只有一種數(shù)字類型,沒有整數(shù)和浮點數(shù)的單獨指定。
因此,數(shù)字可以用JavaScript編寫,帶或不帶小數(shù)。
var a = 25; // 沒有小數(shù) var b = 80.05; // 右小數(shù)測試看看?/?
在以上兩種情況下,數(shù)據(jù)類型都是一個數(shù)字,并且無論該數(shù)字是否帶有小數(shù)點都相同。
可以在JavaScript中使用科學(xué)的指數(shù)表示法來縮寫非常大或很小的數(shù)字,如以下示例所示:
let num1 = 957e8; // 95700000000 let num2 = 957e-8;// 0.00000957測試看看?/?
您將在本教程的后面部分進一步了解數(shù)字類型。
字符串是一個或多個字符(字母,數(shù)字,符號)的序列。字符串很有用,因為它們代表文本數(shù)據(jù)。
JavaScript字符串用于存儲和處理文本。
與某些其他語言不同,JavaScript在單引號和雙引號之間沒有區(qū)別。
var msg1 = "Hello world"; // 使用雙引號 var msg2 = 'Hello world'; // 使用單引號測試看看?/?
您可以在字符串內(nèi)使用引號,只要它們與字符串周圍的引號不匹配即可:
var str1 = 'She said "Hey" and left'; // 雙引號內(nèi)的單引號 var str2 = "She said 'Hey' and left"; // 單引號內(nèi)的雙引號 var str3 = "Let's have a cup of tea"; // 雙引號內(nèi)的單引號 var str4 = 'We\'ll never give up'; // 用反斜杠轉(zhuǎn)義單引號測試看看?/?
您將在本教程的后面部分了解有關(guān)字符串的更多信息。
布爾數(shù)據(jù)類型可以是兩個值之一,即 true 或 false。
在條件測試中經(jīng)常使用布爾值。
(5 > 10) // 返回false (5 < 10) // 返回true ("Apple" === "Apple") // 返回true測試看看?/?
您將在本教程的后面部分了解有關(guān)布爾值的更多信息。
數(shù)組用于將多個值存儲在單個變量中。
JavaScript數(shù)組用方括號括起來[]。
數(shù)組項用逗號分隔。
以下代碼聲明(創(chuàng)建)一個名為fruits的數(shù)組,其中包含三個項目(三種水果名稱):
var fruits = ["Apple", "Mango", "Banana"];測試看看?/?
數(shù)組內(nèi)部的每個項目或值都稱為一個元素。您可以通過使用索引號來引用數(shù)組的元素。
JavaScript數(shù)組的索引為零:數(shù)組的第一個元素的索引為0,第二個元素的索引為1,依此類推。
您將在本教程的后面部分了解有關(guān)數(shù)組的更多信息。
在JavaScript中,對象可以看作是屬性的集合。
JavaScript對象用花括號括起來{}。
對象屬性寫為名稱:值對,以逗號分隔。
var user = {firstName:"Vishal", age:22, color:"blue", location:"unknown"};測試看看?/?
上例中的對象(用戶)具有4個屬性:firstName,age,color和location。
您將在本教程的后面部分了解有關(guān)對象的更多信息。
typeof運算符可以幫助你找到你的變量的類型。
typeof運算符返回一個變量或表達式的類型。
typeof "" // Returns "string" typeof "Vishal"// Returns "string" typeof "42"// Returns "string" (Number within quotes is String) typeof 42 // Returns "number" typeof true// Returns "boolean" typeof false // Returns "boolean" typeof undefined // Returns "undefined" typeof null// Returns "object" typeof {name:"Vishal", age:22} // Returns "object" typeof [2, 4, 6, 8]// Returns "object" (not "array", see note below) typeof function myFunc(){} // Returns "function"測試看看?/?
注:typeof運算符為數(shù)組返回“對象”,因為在JavaScript中數(shù)組是對象。
undefined值指示尚未為變量分配值,或者根本沒有聲明變量。
var city;// 值未定義測試看看?/?
類型也是undefined。
typeof city // "undefined"測試看看?/?
通過將值設(shè)置為,可以清空任何變量undefined。類型也將是undefined。
city = undefined; // 值未定義,類型未定義測試看看?/?
該值null表示故意不存在任何對象值。
在JavaScript中,的數(shù)據(jù)類型null是一個對象。
通過將值設(shè)置為,可以清空任何對象null。
var user = {firstName:"Vishal", age:"22", color:"blue"}; user = null;// 現(xiàn)在value為null,但是數(shù)據(jù)類型仍然是一個對象測試看看?/?
您也可以通過將其設(shè)置為來清空對象undefined。
var user = {firstName:"Vishal", age:"22", color:"blue"}; user = undefined; // 值和類型都未定義測試看看?/?
typeof null // "object" (not "null" for legacy reasons) typeof undefined // "undefined"測試看看?/?
當(dāng)檢查null或時undefined,請注意等號(==)和身份(===)運算符之間的差異,因為前者執(zhí)行類型轉(zhuǎn)換。
null == undefined // true null === undefined// false
雖然您創(chuàng)建的每個程序都將包含多種數(shù)據(jù)類型。
當(dāng)您使用跨數(shù)據(jù)類型使用的運算符(例如+可以添加數(shù)字或連接字符串的運算符)時,可能會獲得意外的結(jié)果。
當(dāng)添加數(shù)字和字符串時,JavaScript會將數(shù)字視為字符串。
var x = 5 + "Sky";
測試看看?/?
在添加字符串和數(shù)字時,JavaScript會將數(shù)字視為字符串。
var x = "Sky" + 5;
測試看看?/?
JavaScript從左到右計算表達式。不同的序列可以產(chǎn)生不同的結(jié)果:
var x = 5 + 3 + "Sky";
測試看看?/?
var x = "Sky" + 5 + 3;
測試看看?/?
在第一個示例中,JavaScript將5和3視為數(shù)字,直到達到“Sky”。
在第二個示例中,由于第一個操作數(shù)是一個字符串,因此所有操作數(shù)都被視為字符串。