原文地址:https://wangdoc.com/javascript/
简介
JavaScript的数据类型共有6种。(ES6又新增了第7种Symbol类型的值)
- 数值(number):整数和小数。
- 字符串(string):字符串 。
- 布尔值(boolean):表示真伪的两个特殊值。
- undefined:表示未定义或不存在。
- null:表示空值。
- 对象(object):各种值组成的集合。
通常,数值、字符串、布尔值这三个类型合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。对象则称为合成类型(complex type)的值。至于undefined和null,一般将它们看成两个特殊值。
对象时最复杂的数据类型,又可以分为三个子类型。 - 侠义的对象(object)
- 数组(array)
- 函数(function)
函数其实是处理数据的方法,JavaScript把它当成一种数据类型,可以赋值给变量,这为编程带来了很大的灵活性。
typeof运算符
JavaScript有三种方法,可以确定一个值到底是什么类型。
- typeof运算符
- instanceof运算符
- Object.prototype.toString方法
typeof可以返回一个值得数据类型,数值、字符串、布尔值分别返回number、string、boolean。
typeof 123 // number
typeof "123" // string
typeof false // boolean
函数返回function
function f() {}
typeof f; // function
undefined返回undefined。
对象返回object。
typeof window // object
typeof {} // object
typeof [] // object
在JavaScript内部,数组是一种特殊的对象。这里顺便提一下,instanceof运算符可以区分数组和对象。
var o = {};
var a = [];
o instanceof Array // false
a instanceof Array // true
null返回object。
这个是历史原因造成的。1995年的JavaScript语言第一版,没考虑null,只把它当成object的一种特殊值。后来null独立出来称为单独的数据类型,但是为了兼容旧代码,typeof null返回object就无法改变了。