关于js中的双等号问题

JavaScript010

关于js中的双等号问题,第1张

js中存在 == 和 === 两种校验是否相等的运算符。

由于双等号的存在,使用中会存在一些问题,例如:

重读前端中列出了双等号的转换方式:

有时候不知道会拿到什么类型的数据时,为了严格的控制数据类型和可能存在的状况bug,还是建议用三等来判断,把拿到的不确定数据都进行类型转换之后再做比较。

目前js设计中的存在了早期的不合理设计,在 JavaScript 设计原则“don’t break the web”之下,已经无法修正了,这种可控类型问题可以考虑用typescript解决,团队的规范也建议停用双等号以减少出现bug的几率。

在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符。

== 操作符

“等同”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较

例子1

var str1 = "123456" // 字符串

var str2 = "123456" // 字符串

alert(str1==str2) // 打印出 true,即相等

扩展资料

js中==和===区别:

简单来说: == 代表相同, ===代表严格相同,当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false。

双等号==:

(1)如果两个值类型相同,再进行三个等号(===)的比较;

(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

1)如果一个是null,一个是undefined,那么相等;

2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。