1.简介
JavaScript有六种数据类型(ES6新增了Symbol类型)。
- number:整数和小数(1,3.14)
- string:文本(Hello World)
- boolean:true和false
- undefined:表示未定义或不存在,暂无任何值
- null:表示空值,即此处值为空
- object:对象,各种值组成的集合 原始类型(primitive type)的值,最基本的数据类型:number、string、boolean;合成类型(complex type)的值:object,因为一个对象往往是多个原始类型的值的合成,可看成一个存放各种值的容器。undefined和null可以看成两个特殊值。
1.1对象
对象是最复杂的数据类型,可以分成三个子类型。
- object狭义的对象
- array数组
- function函数 狭义的对象和数组是两种不同的数据组合方式。函数是处理数据的方法,JavaScript将它当成一种数据类型,可以赋值给变量,为编程带来很大的灵活性,为JavaScript的函数式编程奠定基础。(高级函数,一个函数作为另外一个函数的参数传入,回调函数)
2.typeof运算符
JavaScript有三种方法可以确定一个值到底是什么类型
- typeof运算符
- instanceof运算符
- Object.prototype.toString方法 typeof运算符可以返回一个值的数据类型:
- 数值、字符串、布尔值分别返回number、string、boolean
- 函数返回function
- undefined返回undefined(利用这点可以用来检查一个未声明的变量而不报错)
- 对象返回object(空数组类型是object,数组本质上只是一种特殊的对象,而instanceof运算符可以区分数组和对象)
- null返回object null的类型是object,由于1995年JavaScript只设计了五种数据类型,未考虑null,将其当作object的一种特殊值。后来null独立出来,作为一种单独的数据类型,为了兼容以前的代码,typeof null返回object就没法改变了。