一、数据类型:
JavaScript中有七种数据类型:
1.number (数值)
整数和小数(比如1和3.14)
2.string (字符串)
JS中字符串类型用于表示文本数据,比如“Hello World”
3.boolean (布尔值)
布尔表示逻辑的真伪,可以有两个值:true (对)和 false(错)
4.null (空值)
null 即此处的值为空,表示缺少的标识,指示变量未指向任何对象。把 null 作为尚未创建的对象,也许更好理解。
5.undefined (未定义)
一个没有被赋值的变量会有个默认值undefined
6.symbol(在ECMAScript 第6版新定义)
每个从Symbol()返回的symbol值都是唯一的,唯一目的就是作为对象属性的标识符
7.object (对象)
对象可以被看作是一组属性的集合,即一组“键值对”(key-value)的集合,是一种无序的复合数据集合
二、值有类型,变量没有类型:
需要注意的是,在JavaScript中,值(即数据)是有类型的,但变量是没有类型的。我们可以看到,变量foo是没有确切类型的,可以任意赋不同数据类型的值。变量可以包含任意值,这些值具有类型。
三、如何判断一个值的数据类型?
为什么要判断一个值的数据类型?
判断值的数据类型是为了满足函数多态的需求。对一些不确定的值操作时,为了避免发生错误,在操作之前加一个数据类型判断,再根据相应类型来进行不同的操作。
判断数据类型最常用的是 typeof 运算符
string, boolean, number,undefined
- typeof返回为相应原始类型
null
- object (历史遗留问题,JS的bug)
object
- object
function
- function (理论上来说function是object,typeof应该返回object,但返回的其实是function,JS的bug)