前端面试题(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
简而言之就是 "==" 只要求值相等;   "===" 要求值和类型都相等
二、