前端面试题(js部分)
一、==和===的区别
1.== 用于比较、判断两者相等,比较时可自动换数据类型
2.=== 用于(严格)比较、判断两者(严格)相等,不会进行自动转换,要求进行比较的操作数必须类型一致,不一致时返回flase。
举例说明:
@1
"1"
==
true
类型不同,
"=="
将先做类型转换,把
true
转换为1,即为
"1"
== 1;
此时,类型仍不同,继续进行类型转换,把
"1"
转换为1,即为 1 == 1;
此时,
"=="
左右两边的类型都为数值型,比较成功!返回
true
@2
如果比较:
"1"
===
true
左侧为字符型,右侧为bool布尔型,左右两侧类型不同,结果为
false
;
如果比较:
"1"
=== 1 左侧为字符型,右侧为int数值型,左右两侧类型不同,结果为
false
;
如果比较: 1 === 1 左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为
true
;
如果比较: 1 === 2 左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为
false
;
简而言之就是
"=="
只要求值相等;
"==="
要求值和类型都相等
二、