美文网首页
JS的数据类型和类型判断

JS的数据类型和类型判断

作者: 追风的云月 | 来源:发表于2017-08-07 23:08 被阅读0次

undefined

出现场景:

已经声明还未赋值的变量;
获取对象不存在的属性;
无返回值的函数的执行结果;
函数的参数没有传入,尝试去获取;

转型函数去操作undefined值:

Boolean=>false
Number=>NaN
String=>"undefined"

Boolean

出现场景:条件语句导致系统执行隐式类型转换;

转型函数去操作Boolean值:

Number=>1/0
String=>"true"/"false"

String

类型转换.png

Number

类型转换.png

Object

类型识别.png
如何判断一个对象是不是{}(空对象)

JSON.stringify({})==="{}"

数据之间的类型识别

1.typeof

image.png
typeof null返回object
typeof 无法识别对象具体类型,都返回object,除了function返回Function

2. Object.prototype.toString.call(对象)

var arr = [];
console.log(Object.prototype.toString.call(arr))  //"[object Array]"
可以识别标准类型及内置对象类型
不能识别自定义类型

3.constructor

console.log([].constructor===Array)//true
console.log([].constructor.name==="Array")//true

constructor属性可以在实例上访问到,但其实constructor属于原型对象,是通过[].__proto__.constrctor访问到的。

4.instanceof

可以判断内置对象
可以判断自定义类型

instanceof用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

在另一篇文章里面看到对于instanceof原理的解释非常好,这里引用一下,JavaScript instanceof 运算符深入剖析

数据之间的类型转换

1.==

2.if

3.+

4.逻辑运算符

5.!!

相关文章

网友评论

      本文标题:JS的数据类型和类型判断

      本文链接:https://www.haomeiwen.com/subject/bcdzlxtx.html