二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:JavaScript数据类型
JavaScript 数据类型
JavaScript 变量可以存储很多数据类型: 数字, 字符串, 对象等:
var length = 16; // 数字 var lastName = "Johnson"; // 字符串 var x = {firstName:"John", lastName:"Doe"}; // 对象
数据类型的概念
在编程中,数据类型是一个重要的概念
为了能够对变量进行操作,了解一些关于类型的知识是很重要的.
没有数据类型,计算机不能安全地解决这个问题:
var x = 16 + "Volvo";将16和"Volvo"相加是否有意义 ? 它会产生错误,还是会得到一个结果?
JavaScript 将上述例子视为:
var x = "16" + "Volvo";当添加一个数字和一个字符串,JavaScript将数字作为字符串.
var x = 16 + "Volvo";var x = "Volvo" + 16;JavaScript表达式的值从左到右。不同的序列可以产生不同的结果:
var x = 16 + 4 + "Volvo";var x = "Volvo" + 16 + 4;在第一个例子中,把16和4作为JavaScript的数字,直到它遇到 "Volvo".
在第二个例子中,因为第一个操作数是字符串,所有操作数都被视为字符串.
JavaScript类型是动态的. JavaScript有一个动态类型. 这意味着可以使用相同的变量来保存不同的数据类型:
var x; // Now x is undefined var x = 5; // Now x is a Number var x = "John"; // Now x is a String
JavaScript 字符串
字符串(或文本字符串)是一系列字符 "John Doe".
字符串是用引号来书写的。您可以使用单引号或双引号:
var carName = "Volvo XC60"; // 使用双引号 var carName = 'Volvo XC60'; // 使用单引号你可以在字符串内使用引号, 只要它们不匹配字符串周围的引号:
var answer = "It's alright"; // 在双引号里面有单引号 var answer = "He is called 'Johnny'"; // 双引号里面有单引号 var answer = 'He is called "Johnny"'; // 单引号里面有双引号在本教程后面,您将了解更多有关字符串的知识。.
JavaScript 数字
JavaScript的只有一种类型的数字.
数字可以带或者不带小数点:
var x1 = 34.00; // 带小数点 var x2 = 34; // 不带小数点Extra large or extra small numbers can be written with scientific (exponential) notation:
特别大或者特别小的数字可以用科学(指数)计数法
var y = 123e5; // 12300000 var z = 123e-5; // 0.00123在本教程后面,您将了解更多有关数字的知识.
JavaScript Booleans
布尔值只能有两个值:true或false.
var x = true; var y = false;布尔值,通常用在条件测试中.
您将在本教程中了解更多有关条件测试的信息.
JavaScript 数组
JavaScript 数组用方括号表示.
数组项用逗号分隔.
下面的代码声明(创建)一个被称为cars的数组,包含3个选项 (汽车名称):
var cars = ["Saab", "Volvo", "BMW"];数组索引为零,这意味着第一个项目是[ 0 ],第二个是[ 1 ],等等.
在本教程后面,您将了解更多有关数组的知识。
JavaScript 对象
JavaScript 对象用大括号表示.
对象的属性用名键:值对,以逗号分隔.
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};上面例子中的对象(人)有4个属性: firstName, lastName, age, and eyeColor.
在本教程后面,您将了解更多有关对象的知识.
typeof 操作符
你可以使用JavaScript typeof运算符来判断一个JavaScript变量的类型.
typeof运算符返回一个变量或表达式的类型:
typeof "" // Returns "string" typeof "John" // Returns "string" typeof "John Doe" // Returns "string" typeof "John" + "Doe" // Returns "string"typeof 0 // Returns "number" typeof 314 // Returns "number" typeof 3.14 // Returns "number" typeof (3) // Returns "number" typeof (3 + 4) // Returns "number"
原始数据
原始数据值是一个简单的数据值,没有附加属性和方法.
typeof运算符返回一个原始类型:
- string
- number
- boolean
- null
- undefined
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean"复合数据
typeof运算符可以对两个复合类型返回:
- function
- object
typeof [1,2,3,4] // Returns "object" (not "array", see note below) typeof {name:'John', age:34} // Returns "object" typeof function myFunc(){} // Returns "function"typeof运算符返回对象针对数组,因为JavaScript中的数组是对象.
Undefined
在JavaScript中,变量没有值,或者值为undefined. typeof 也是 undefined.
var person; // Value is undefined, type is undefined任何变量可以被清空,通过将值设置为未定义。类型也将是未定义的.
person = undefined; // Value is undefined, type is undefined
空值
空值与undefined无关.
空字符串变量具有值和类型.
var car = ""; // 它的值是"", typeof "string"
Null
在JavaScript里面 null 是"没有任何内容". 它应该是不存在的东西.
不幸的是,在JavaScript中,null数据类型是一个对象.
你可以考虑在JavaScript typeof null对象错误。应该是空的.
通过将它设置为空可以清空对象:
var person = null; // 值是null, 但是类型还是对象还可以将对象设置为 undefined,来清空一个对象:
var person = undefined; // 值是 undefined, 类型是undefined
Undefined 和 Null之间的区别
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true