JavaScript数据类型
JavaScript变量可以hold住各种数据类型:数字,字符串,对象及更多:
var length = 16; // 数字 var lastName = "Johnson"; // 字符串 var x = {firstName:"John", lastName:"Doe"}; // 对象
JavaScript数据类型的概念
在编程中,数据类型是一个非常重要的概念。为了控制好变量,了解数据类型是非常重要的。
离开了数据类型,计算机很难安全的处理这些问题:
var x = 16 + "Volvo";
如果没有数据类型的各项规则,那么数字加一个字符串将会是什么?如果没有一个规则去处理这个问题,那么计算机显然会报错,它无法将一个数字与字符串加到一起得出结果。结果将不会是数字也不是字符串。莫非是数字字符串?别扯了。
因为有了规则,JavaScript将把上面的例子处理成:
var x = "16" + "Volvo"; // 结果是16Volvo
将一个数字与字符串相加时JavaScript将会把数字转换成字符串。
再看一个例子:
var x = 16 + 4 + "Volvo"; //结果是20Volvo
JavaScript是从左到右计算代码的,所以,先计算16+4。由于两个都是数字,会进行加法,得出20,再把20转成字符串与Volvo相加。
var x = "Volvo" + 16 + 4; //结果是Volvo164
JavaScript类型是动态的
JavaScript有动态类型。说白了就是,变量的数据类型可以是多种。
var x; // undefined(未定义) var x = 5; // X是数字 var x = "John"; // X是字符串
JavaScript字符串
关于单引号与双引号的使用:同类型引号不可嵌套。
var answer = "It's alright"; // 一个单引号在双引号里 var answer = "He is called 'Johnny'"; // 一对双引号里有一对单引号 var answer = 'He is called "Johnny"'; // 一对单引号里有一对双引号
JavaScript数字
var x1 = 34.00; // 有小数 var x2 = 34; // 没有小数 var y = 123e5; // 同12300000 var z = 123e-5; // 同0.00123
JavaScript布尔值
var x = 5; var y = 5; var z = 6; (x == y) // 返回true (x == z) // 返回false
这个布尔值一般用于条件判断。
JavaScript数组
数组会写在方括号里,
通过半角分号分开每个项目。
var cars = ["Saab", "Volvo", "BMW"];
数组的索引是基于0的。意思就是,数组里第一个项目的索引是0,即获取第一个项目的话是cars[0]。那么第二个就是cars[1]。
JavaScript对象
JavaScript对象写在大括号(花括号)里。
跟数组一样,通过半角分号分开每个项目。
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
怎么描述上面的表达式呢?这样描述:
上面有一个对象person,这个对象有4个属性名称:firstName,lastName,age,eyeColor。每个属性名称都有它的值。一个属性名称与其值的组合可以成为属性(其实,在CSS中,这样的一个组合叫声明)。N个属性,用半角逗号分开。
运算符typeof
使用typeof可以查看变量或表达式的类型。
typeof "" // Returns "string" typeof "John" // 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"
Undefined
var car; // 值是undefined, 类型是undefined car = undefined; // 值是undefined, 类型是undefined
空值
空值也是合法的。但是它不同于undefined。
var car; // 值是undefined, 类型是undefined var car = ""; // 值是""(引号里的东西,空), 类型是string(字符串)
Null
JavaScript中null是什么都没有的意思,可以想象成根本不存在的东西。
但是,在JavaScript里它的数据类型是对象。至少目前(2018年)大家可以把这个当作是一个bug。null的数据类型应该是null。
例:清空一个对象。
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = null; // 现在值是null, 但是数据类型依然是对象
例:当然,也可以通过undefined来清空一个对象。
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; person = undefined; // 现在数据类型和值都是undefined
Null和Undefined的区别
typeof undefined // undefined typeof null // object null === undefined // false null == undefined // true
===之前讲过,这个符号的意思是恒等于。即===两侧的值和数据类型均相等。而==是值相等。单个等号的意义是赋值,而不是比较。需注意。
原始数据
原始数据(Primitive Data)是一个简单的数据,没有附加的属性和方法。
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof true // Returns "boolean" typeof false // Returns "boolean" typeof x // Returns "undefined" (x没有值的情况下)
复杂数据
typeof运算符可以返回两个复杂数据类型中的一个。
- function
- object
typeof {name:'John', age:34} // Returns "object" typeof [1,2,3,4] // Returns "object" (不是array,JavaScript中array是对象) typeof null // Returns "object" typeof function myFunc(){} // Returns "function"
补充说明:
我们在学习编码时英文关键词也应该要记住。
比如array是数组,object是对象,function是函数,return是返回,string是字符串等等,都需要记住。使用率极高。不要弄到看到了还不知道是什么东西。
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。