js 布尔值转换和数据类型的简单判断

js 布尔值转换和数据类型的简单判断

引言

通常情况下js的布尔值转换和数据类型判断是一个比较容易犯错的问题,现在我们结合对照表来简单梳理一下

一、js 布尔值转换

一、==的情况下转换

参考

二、数据类型和布尔值的转换

数据类型 能转换为true 能转化为false
boolean ture false
string 任何非空字符 “”
number 任何非零数字值 0和NaN
obj 任何对象 null
undefined undefined
arr 任何数组 null

三、判断数据类型的方法

1、typeof

数据类型 typeof结果
string string
number number
booleam boolean
undefind undefind
functuon function
obj obj
null obj
arr obj

用法:

typeof()  // 适合判断除null外的基本数据类型,不适合判断obj、arr、function等引用类型

2、instanceof

用法:

obj instanceof Object  // true
arr instanceof Array //true
pattern instanceof RegExp //true

注意事项以及适用范围:

  • 引用用类型所有值都是obj的事例,所以所以引用类型instanceof Object都为ture
  • 可以判断是否为引用类型,或者是否为数组

缺点:

instanceof会从原型链一直往上查找,假如有个obj的继承的原型是Array,此时obj instanceof Array为true,显示是错的

3、toString方法

用法

Object.prototype.toString.call([]) // [Object Array]

判断数据类型最优的方法

4、其他判断
  • Array.isArray 是否是数组
  • Number.isNaN 是否为NaN。tip:另外一个方法判断NaN,如果a=NaN 则 a !== ajic

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1249118795@qq.com