JavaScript 如何判断一个数据的类型

JavaScript的数据类型: (参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures)

  原始类型(6种):Number、String、Boolean、Null、Undefined、Symbol(in es6)
  和Object

 

使用:

  JavaScript 是一种弱类型语言,可以在声明时不用声明类型,在程序运行过程中类型会被自动确定,可以同一个变量保存不同类型的数据。

  这也导致了一个问题,在判断数据类型时会出现类型不精确的情况,导致判断出现问题。

判断数据类型:

1.typeof 操作符返回一个字符串,表示未经计算的操作数的类型
在使用typeof 判断数据类型时,常常返回以下字符串(隐式声明,不使用new 声明)
Undefined 'undefined'
Null  'object'
Number  'number'
String  'string'
Boolean  'boolean'
Symbol  'symbol'
函数对象  'function'
宿主对象(由JS环境提供)  Implementation-dependent
任何其他对象  'object'
注意:
  在某些显示声明情况下,通常返回 'object' 例如: new String('asd')、 new Number('1')、new Boolean('0')
  在ie6、7、8上,很多宿主对象 返回对象而不是函数 例如 alert等

 

判断对象类型:

在使用JavaScript时,有时需要判断一个对象的精准类型,例如 Array,在判断Array等是否为指定数据类型时, 使用typeof 无法进行判断,这时可以 使用 Object.prototype.toString.call(target)  返回 '[object Array]'

 

判断是否为某个构造函数的实例:

vm instanceof constructor

 

posted @ 2019-03-08 17:48  tatelZhang  阅读(1948)  评论(0编辑  收藏  举报