隐式类型转换

  

1.1 -隐式转换介绍
在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算,这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换,例如1比;“0”;这行代码在js中并不会报错,编译器在运算符时会先把右边的“0”;转成数字0然后再比较大小

  

关于==和===的性能,有人会觉得,==的性能会比===的性能要慢。没错,==确实是要比===多花一点时间,但是这只是微秒级的差别,也就是万分之一秒左右,对于程序来说可忽略不计。但是无论==还是===都会检测类型,只是检测出来之后各自的操作不一样。

  

空数组的toString()方法会得到空字符串,而空对象的toString()方法会得到字符串<代码>[对象对象]>   

<强>逻辑运算符优先级高于关系运算符
1。逻辑非将其他数据类型转换成布尔类型
2。关系运算符将其他数据类型转换成数字

  

返回对象的值()方法可返回布尔对象的原始值。
控制台。日志([]==0)//真正的空数组的toString()方法会得到空字符串
控制台。日志(![]==0)//真正的空数组转布尔得到真正然后取反得到假

  

控制台。日志([]==[])//假
控制台。日志(!{}==0)//假空对象

  

控制台。日志({}=={})//假引用数据类型存在堆中,堆中存储的是地址
控制台。日志(!{}=={})//假

隐式类型转换