JavaScript 数据类型
-
JavaScript数据类型
JavaScript变量可以包含许多数据类型:数字,字符串,对象等:var length = 16; // Number var lastName = "Johnson"; // String var x = {firstName:"John", lastName:"Doe"}; // Object
-
数据类型的概念
在编程中,数据类型是一个重要的概念。为了能够对变量进行操作,了解类型非常重要。没有数据类型,计算机无法安全地解决此问题:var x = 16 + "Volvo";
将“Volvo”跟16相加是否有意义?它会产生错误还是会产生结果?JavaScript会将上面的示例视为:var x = "16" + "Volvo";
数字和字符串相加时,JavaScript会将数字视为字符串。
尝试一下var x = 16 + "Volvo";
尝试一下var x = "Volvo" + 16;
JavaScript从左到右计算表达式。不同的序列会产生不同的结果:var x = 16 + 4 + "Volvo";
结果为:20Volvovar x = "Volvo" + 16 + 4;
结果为:Volvo164在第一个示例中,JavaScript将16和4视为数字,直到达到“Volvo”。在第二个示例中,由于第一个操作数是一个字符串,因此所有操作数都被视为字符串。 -
JavaScript类型是动态的
JavaScript具有动态类型。这意味着可以使用相同的变量来保存不同的数据类型:
尝试一下var x; // 现在是 undefined x = 5; // 现在是 Number x = "John"; // 现在是 String
提示:这一点跟一些静态语言不同。比如C语言,声明了某种数据类型的变量,只能保存该类型的数据。
-
JavaScript字符串(String)
字符串(或文本字符串)是一系列字符,如“John Doe”。字符串是用引号写的。您可以使用单引号或双引号:
尝试一下var carName1 = "Volvo XC60"; // 用双引号 var carName2 = 'Volvo XC60'; // 用单引号
您可以在字符串中使用引号,只要它们与字符串周围的引号不冲突(字符串里面有单引号就用双引号来包含,字符串里面有双引号就用单引号来包含):
尝试一下var answer1 = "It's alright"; // 双引号内的单引号 var answer2 = "He is called 'Johnny'"; // 双引号内的单引号 var answer3 = 'He is called "Johnny"'; // 单引号内的双引号
提示:后面的教程会介绍一种转义的方法来解决这个问题。
-
-
JavaScript布尔类型(Booleans)
布尔值只能有两个值:true或false。
尝试一下var x = 5; var y = 5; var z = 6; (x == y) // 返回 true (x == z) // 返回 false
提示:布尔值通常用于条件测试。
-
JavaScript数组(Array)
JavaScript数组用方括号编写。数组项以逗号分隔。以下代码声明(创建)一个名为的数组cars,其中包含三个项目(汽车名称):
尝试一下var cars = ["Saab", "Volvo", "BMW"];
提示:数组索引从零开始,这意味着第一项是[0],第二项是[1],依此类推。
-
JavaScript对象(Object)
JavaScript对象用大括号{}编写。对象属性写为name:value对,以逗号分隔。
尝试一下var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
上例中的对象(person)有4个属性:firstName,lastName,age和eyeColor。 -
数据类型操作符(typeof)
您可以使用JavaScript typeof运算符来查找JavaScript变量的类型。typeof操作符返回一个变量或一个表达式的类型:
尝试一下typeof "" // 返回 "string" typeof "John" // 返回 "string" typeof "John Doe" // 返回 "string"
尝试一下typeof 0 // 返回 "number" typeof 314 // 返回 "number" typeof 3.14 // 返回 "number" typeof (3) // 返回 "number" typeof (3 + 4) // 返回 "number"
-
-
-
空值(null)
在现实生活中null表示“没有”。它应该是不存在的东西。不幸的是,在JavaScript中,数据类型null是一个对象。您可以通过将对象设置为null以下来清空对象:
尝试一下var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = null; // 现在value为null,但type仍然是一个对象
您还可以通过将对象设置为undefined来清空对象:var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = undefined; //现在值和类型都是undefined
-
undefined和null之间的区别
undefined和null值不相同类型也不同:
尝试一下typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
-
原始数据类型
原始数据类型是单个简单数据类型,没有其他属性和方法。typeof操作符可以返回这些基本类型中的一种:- string
- number
- boolean
- undefined
尝试一下typeof "John" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (if x has no value)
-
复合数据类型
typeof操作符可以返回两个复杂类型中的一种:- function
- object
尝试一下typeof {name:'John', age:34} // 返回 "object" typeof [1,2,3,4] // 返回 "object" typeof null // 返回 "object" typeof function myFunc(){} // 返回 "function"
typeof操作符操作数组返回“object”,因为JavaScript数组是对象。