JS强制类型转换,隐式类型转换, == 和===的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS强制类型转换,隐式类型转换, == 和===的区别相关的知识,希望对你有一定的参考价值。

==匹配两个变量的的值,如果类型不匹配,会强制类型转换,
===不但匹配两个变量的值,还会匹配两个变量的数据类型是否相同,如果其中有一项不相同,匹配失败。
===不会类型转换,执行效率高。
参考技术A ==:相等。比如:1=="1" 返回:true;
===:全等,必须值和类型都相同。比如:1==="1" 返回:false

隐式/显式类型转换

参考技术A

显式的类型转换我们都知道,比如to_a、to_s、to_i方法,显示转化一般用于这样的情形: 源类型和目标类型很大程度上不相关或毫无关联

那么,隐式类型转换是什么呢?
隐式类型转换适用于源类型和目标类型很详尽的情形

ruby核心库和标准库大量使用了隐式类型转换,标准类型转换方法如下:

注:隐式、显式方法目标类都已实现

有了这些方法,我们的有些参数检查就不必使用,可以使用隐式方法代替参数检查
eg

一些首字母大写的强制类型转换方法会调用 这些隐式转换方法,如:Array(),Integer(),String()等,但是这些方法处理逻辑并不一致,有的会有限调用隐式方法、无隐式方法时再调用显式方法,有的是直接调用显式方法;具体情况还要看ruby官网文档
eg:

以上是关于JS强制类型转换,隐式类型转换, == 和===的区别的主要内容,如果未能解决你的问题,请参考以下文章

Js隐式转换

强制类型转换和隐式类型转换

隐式转换 & 强制转换

类型转换 隐式转换 自动提升 强制转换

隐式转换和强制转换

JS 转换数据类型