javascript中类型判断的最佳方式

 更新时间:2022年06月21日 10:22:04   作者:小旭2021  
这篇文章介绍了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

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

相关文章

  • uniApp常见面试题及答案(推荐!)

    uniApp常见面试题及答案(推荐!)

    uni-app是一个使用Vue.js开发所有前端应用的框架,下面这篇文章主要给大家介绍了关于uniApp常见面试题及答案的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • 实例详解display:none与visible:hidden的区别

    实例详解display:none与visible:hidden的区别

    这篇文章主要介绍了实例详解display:none与visible:hidden的区别的相关资料,需要的朋友可以参考下
    2017-03-03
  • JS库之Three.js 简易入门教程(详解之一)

    JS库之Three.js 简易入门教程(详解之一)

    three.js是一款webGL框架,由于其易用性被广泛应用。下面脚本之家小编通过案例给大家阐述three.js的基本配置方法,具体内容详情大家参考下本文吧
    2017-09-09
  • js 调用百度分享功能

    js 调用百度分享功能

    本文主要介绍了js调用百度分享功能的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 微信小程序前端自定义分享的实现方法

    微信小程序前端自定义分享的实现方法

    这篇文章主要给大家介绍了关于微信小程序前端自定义分享的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用微信小程序具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Typescript协变与逆变简单理解

    Typescript协变与逆变简单理解

    深入学习TypeScript类型系统的话,逆变、协变、双向协变、不变是绕不过去的概念。这些概念看起来挺高大上的,其实并不复杂,这篇文章我们就来学习下协变和逆变吧
    2022-10-10
  • JavaScript编程的10+最佳实践解决方案

    JavaScript编程的10+最佳实践解决方案

    在现代Web开发中,JavaScript已经成为无法替代的核心技术,在现代Web开发中,JavaScript已经成为无法替代的核心技术,本文将通过代码示例详细介绍一些实践解决方案,感兴趣的同学可以参考下
    2023-06-06
  • JS异步的执行顺序分析

    JS异步的执行顺序分析

    这篇文章介绍了JS异步的执行顺序,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • JavaScript原型对象原理与应用分析

    JavaScript原型对象原理与应用分析

    这篇文章主要介绍了JavaScript原型对象原理与应用,结合实例形式分析了javascript原型对象的概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-12-12
  • 微信小程序绑定手机号获取验证码功能

    微信小程序绑定手机号获取验证码功能

    这篇文章主要介绍了微信小程序绑定手机号获取验证码功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论