一个=是赋值,不是等于的意思。
两个==才是等于的意思。
且两个==是值相等,类型可以不相同。
所以,123=="123"的结果是true。
而三个===是等同于的意思,除了要值相等,类型也要相同。
所以,123==="123"的结果是false,因为123的类型时number,而"123"的类型是string。
而123===123或"123"==="123"的结果都是true。
下图是一个例子:
=,赋值运算符,即给变量赋予某个取值或内存地址。比如var a = 3,即给变量a赋值为3,再比如var obj = {},就是把对象{}的地址赋值给obj。
==,比较运算符,检测两个值是否相等。比如var a = 1,则a == 1的结果就是true。需要注意的是,==运算符两边数据类型不一致时可能会发生数据类型转换,比如,同样前面的a,表达式a == '01',第一眼看上去并不相等,但因为在比较a与'01'时,js将字符串'01'转换为数字1,所以a == '01'的结果还是true。
===,比较运算符,基本上===与==的功能一样。区别在于,===不会发生类型转换,数字就是数字,类型就是类型,如果===两边的操作符类型就不一致,那么这个表达式的结果一定是false。
=是赋值运算符,==是关系运算符===是全等运算符
”==”是判断值是否相等,
”===”是判断值及类型是否完全相等。
”==”比较时会进行类型转换,“===”则不会
例如:
alert('55' == 55) //true
alert('55' === 55) //false