JavaScript基本数据类型
字符串、数值、布尔值、数组、对象
var length = 7; //数字
var lastName = "杰伦"; //字符串
var cars = ["Porsche","Volvo","BMW"]; //数组
var x = {firstName:"周",lastName:"杰伦";} //对象
数据类型的概念
- 在编程过程中,数据类型是重要的概念。
- 为了能够操作变量,了解数据类型是很重要的。
例子1
var x = 911 + "Porsche";
结果:911Porsche
- 结论:当数字和字符串相加时JavaScript将把数值视作字符串。
例子2
var x = 911 + 7 + "Porsche";
结果:918Porsche
var x = Porsche + 911 + 7;
结果:Porsche9117
- 在第一个中,JavaScript把911和7视作数值,直到遇到“Porsche”。
- 在第二个中,由于第一个操作数就是字符串,因此所有的操作数都被视为字符串。
JavaScript拥有动态类型
- JavaScript拥有动态类型。这意味着相同变量可用作不同类型:
var x; //现在 x 是undefined
var x = ; //现在 x 是数值
var x = "Bill"; //现在 x 是字符串值
字符串值
- 字符串是一串字符。
- 字符被引号包围,我们可以使用单引号或双引号。
- 我们可以在字符串内使用引号,只要这些引号和包围字符串的引号不匹配就可以。
数值
- JavaScript只有一种数值类型。
- 写数值时用不用小数点均可。
- 超大或超小的数值可以用科学计数法来写。
var x1 = 34.00; //带小数点
var x2 = 34; //不带小数点
var y = 123e5; //12300000
var z = 123e-5; //0.00123
布尔值
- 布尔值只有两个值:
true
或false
。 - 布尔值经常使用在条件测试中。
数组
- JavaScript数组用方括号书写。
- 数组的项目由逗号分隔。
- 数组索引基于零,这意味着第一个项目是
[0]
第二个项目是[1]
,以此类推。
对象
- JavaScript对象用花括号来书写。
- 对象属性是
name:value
对,由逗号分隔。
var jayChou{
firstName:"周",
lastName:"杰伦",
birthday:"1.18"
};
上述对象中有三个属性:
firstName
,lastName
和birthday
。
typeof运算符
- 我们可以使用JavaScript的
typeof
来确定JavaScript变量的类型: ytpeof
运算返回变量或表达式类型:
typeof 7; //返回 “bumber”
typeof "杰伦"; //返回 “string”
typeof ["Porsche","Volvo","BMW"]; //返回 “object”
typeof true; //返回 "boolean"
typeof {firstName:"周",lastName:"杰伦";}; //返回 “object”
typeof
运算符对数组返回“object
”,因为在JavaScript中数组属于对象。
Undefined
- 在JavaScript中,没有值的变量,其值是
undefined
。typeof
也返回undefined
。
var obj; //值是undefined,类型是undefined
- 任何变量均可以通过设置值为
undefined
进行清空。其类型也将是undefined
。
obj = undefined; //值是undefined,类型是undefined
空值
- 空值于
undefined
不是一回事。 - 空的字符串变量既有值也有类型。
var x = ""; //值是"",类型是“string”
null
- 在JavaScript中,
null
是“nothing
”。它被看做不存在的事物。 - 不幸的是,在JavaScript中,
null
的数据类型是对象。 - 您可以把
null
在JavaScript中是对象理解为一个bug。它本应该是null
。 - 您可以通过设置值为
null
清空对象
var obj = null; //值是null,类型仍然是对象
Undefined与Null的区别
undefined
与null
的值相等,但类型不相等
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
原始数据
- 原始数据值是一种没有额外属性和方法的单一简单数据值。
-typeof
运算符可返回一下原始类型之一:string
number
boolean
undefined
复杂数据
typeof
运算符可返回以下两只类型之一:function
object
typeof
运算符把对象,数组或null
返回object
。typeof
运算符不会把函数返回object
。
typeof ["Porsche","Volvo","BMW"]; //返回 “object”
typeof {firstName:"周",lastName:"杰伦";}; //返回 “object”
typeof null; //返回 “object”
typeof function myFunc(){} //返回 “object”