js中的数据类型
基本数据类型(值类型)
number: 数字
string: 字符串
boolean: 布尔
null: 空对象指针
undefined: 未定义
引用数据类型
{} 普通对象
[] 数组
/^$/ 正则
...
object: 对象数据类型
function: 函数数据类型
number : 12 12.5 0string : 'hello' "hello", // 单双引号包起来的Boolean : true falsenullundefined{name: "lilei",age:18} [12,23,34] /^?(\d|([1-9]\d))/
这么多数据类型js如何检测呢?
typeof
: 检测数据类型的运算符instanceof
: 检测某个实例是否属于这个类constructor
: 获取当前实例的构造器Object.prototype.toString.call
: 获取当前实例的所属类信息
typeof
使用typeof检测,返回的结果是一个字符串,字符串中的额内容证明了值是属于什么类型
[局限性]
typeof null不是"null"而是"object": 因为null虽然是单独的数据类型,但是它本来的意思是空对象指针,浏览器使用typeof检测的时候会把它按照对象来检测
使用typeof无法具体细分出到底是数组还是正则,因为返回的结果都是'object'
typeof 12 // -> 'number'var num = 12;typeof num; // -> 'number'typeof true // -> 'boolean'typeof 'lilei' // -> 'string'typeof undefined // -> 'undefined'typeof null // -> 'object'typeof {name:"lilei"} // -> 'object'typeof [12,23,34] // -> 'object'typeof /^$/ // -> 'object'
console.log(typeof typeof []) // -> 'string '
作者:uplyw
链接:https://www.jianshu.com/p/00914eebe58c