javascript 数据类型
javascript 数据类型包括:字符串值,数值,布尔值,数组,对象等。
1. javascript 数据类型
javascript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等:
var length = 7; // 数字 var lastname = "gates"; // 字符串 var cars = ["porsche", "volvo", "bmw"]; // 数组 var x = {firstname:"bill", lastname:"gates"}; // 对象
2. 数据类型的概念
在编程过程中,数据类型是重要的概念。
为了能够操作变量,了解数据类型是很重要的。
如果没有数据类型,计算机就无法安全地解决这道题:
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"。
在第二个例子中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。
3. javascript 拥有动态类型
javascript 拥有动态类型。这意味着相同变量可用作不同类型:
范例
var x; // 现在 x 是 undefined var x = 7; // 现在 x 是数值 var x = "bill"; // 现在 x 是字符串值
4. 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"'; // 单引号内的双引号
5. javascript 数值
javascript 只有一种数值类型。
写数值时用不用小数点均可:
范例
var x1 = 34.00; // 带小数点 var x2 = 34; // 不带小数点
超大或超小的数值可以用科学计数法来写:
范例
var y = 123e5; // 12300000 var z = 123e-5; // 0.00123
6. javascript 布尔值
布尔值只有两个值:true 或 false。
范例
var x = true; var y = false;
布尔值经常用在条件测试中。
7. javascript 数组
javascript 数组用方括号书写。
数组的项目由逗号分隔。
下面的代码声明(创建)了名为 cars 的数组,包含三个项目(汽车品牌):
范例
var cars = ["porsche", "volvo", "bmw"];
数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。
8. javascript 对象
javascript 对象用花括号来书写。
对象属性是 name:value 对,由逗号分隔。
范例
var person = {firstname:"bill", lastname:"gates", age:62, eyecolor:"blue"};
上例中的对象(person)有四个属性:firstname、lastname、age 以及 eyecolor。
9. 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 中数组属于对象。
10. undefined
在 javascript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。
范例
var person; // 值是 undefined,类型是 undefined
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
范例
person = undefined; // 值是 undefined,类型是 undefined
11. 空值
空值与 undefined 不是一回事。
空的字符串变量既有值也有类型。
范例
var car = ""; // 值是 "",类型是 "string"
12. null
在 javascript 中,null 是 "nothing"。它被看做不存在的事物。
不幸的是,在 javascript 中,null 的数据类型是对象。
您可以把 null 在 javascript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:
范例
var person = null; // 值是 null,但是类型仍然是对象
您也可以通过设置值为 undefined 清空对象:
范例
var person = undefined; // 值是 undefined,类型是 undefined
13. undefined 与 null 的区别
undefined 与 null 的值相等,但类型不相等:
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
14. 原始数据
原始数据值是一种没有额外属性和方法的单一简单数据值。
typeof 运算符可返回以下原始类型之一:
- string
- number
- boolean
- undefined
范例
typeof "bill" // 返回 "string" typeof 3.14 // 返回 "number" typeof true // 返回 "boolean" typeof false // 返回 "boolean" typeof x // 返回 "undefined" (假如 x 没有值)
15. 复杂数据
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 中数组即对象。