javascript中类型判断的最佳方式

这篇文章介绍了javascript中类型判断的最佳方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

javascript有8种数据类型

值类型

  • Number
  • Null
  • Undefined
  • String
  • Symbol
  • Boolean
  • BigInt

引用类型

  • Object
  • Array
  • Function

判断数据类型有以下4种判断方法

第一种方式:   typeof

typeof null   ---> "object"  typeof undefined  ---> "undefined"  typeof true | false  ---> 'boolean'  typeof 42    ---> 'number'  typeof "42" ---> 'string'  typeof { name : '1'} | []  ---> 'object'  typeof Symbol    ---> 'symbol'  typeof ()=>{}       ---> 'function'  typeof void 0      ---> 'undefined'

第二种方式  instanceof  但是这种方式只适合判断object类型

instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上

详细介绍请看这里:javascript中的instanceof运算符

比如 : var arr = [] ; arr instanceof Array   ---> true null instanceof Object ---> false [function] instanceof Object | Function  --> true

第三种方式  Object.prototype.toString.call()   这种方式可以将全部的数据类型检测出来 也是 推荐的方式

因为toString是Object的原型方法, 而 Array Function 等都是Object的实例。都重写了toString 方法。返回的是类型的字符串

Object.prototype.toString.call(null)  --->  [object Null]  Object.prototupe.toString.call(undefined)  ---> [object Undefined]  Object.prototype.toString.call(123)  ---> [object Number]  Object.prototype.toString.call(true) ---> [object Boolean]  Object.prototype.toString.call('123') ---> [object String]  Object.prototype.toString.call({})    ---> [object Object]  Object.prototype.toString.call([])    ---> [object Array]  Object.prototype.toString.call(Math) ---> [object Math]  Object.prototype.toString.call(function(){}) ---> [object Function]  Objdec.prototype.toString.call(new Date)  ---> [object Date]  Object.prototype.toString.call(Symbol())   ---> [object Symbol]

 第四种方式: constructor  判断对象的构造函。

1.  null 是js 原型链的起点,没有构造函数   2. undefined 没有构造函数   3. [].constructor  === Array  ---> true   4. [string].constructor === String   5. [object].constructor === object   6. [number].constructor === Number   7. [symbol].constructor === Symbol   8. [function].constructor === Function   9. [new Date].constructor === Date   10. [RegExp].constructor === RegExp

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是javascript中类型判断的最佳方式的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » JavaScript 教程