美文网首页
javascript的=,==,===

javascript的=,==,===

作者: 爱看历史与书的程序猫 | 来源:发表于2017-08-02 17:49 被阅读0次

很多语言都有三个等号的类别,如=,==,===

在js中很多时候,我们会听到别人推荐我们使用严格相等,而不是去使用双等号,为什么?首先我们要了解什么是==,什么是===(=号位赋值。。。我就不说了。。)

1. "=="表示:equality ->等同的意思,"=="使用两个等号时,如果两边值的类型不同的时候,是要先先进行类型转换后,才能做比较。

2. "==="表示:identity ->恒等 的意思,"==="使用三个等号时,是不需要做类型转换的,如果两边值的类型不同,就表示一定是不等的。

看起来很简单,对吧,js在验证是否相等的时候,会根据他的类别,还有值去判断,下面几个代码可以证明:

var a1 ="";

vara2 = 0;

vara3 = false;

console.log("111111111111111111111111111以下是原始的typeof")

console.log(typeofa1);

console.log(typeofa2);

console.log(typeofa3);

console.log("111111111111111111111111111以下是原始的value")

console.log(a1.valueOf());

console.log(a2.valueOf());

console.log(a3.valueOf());

console.log("222222222222222222222222222开始操作");

console.log(a1=== a2);

console.log(a1== a2);

console.log(a2== a3);

console.log(a3== a1);

console.log("3333333333333333333333333333打印操作后的typeof")

console.log(typeofa1);

console.log(typeofa2);

console.log(typeofa3);

console.log("3333333333333333333333333333333以下是操作后的value")

console.log(a1.valueOf());

console.log(a2.valueOf());

console.log(a3.valueOf());

验证结果就不给了,注意看,在代码中我提及到了一个value(还有一个tostring我没提到)

为什么“双等号会造成类型转换”?

这是因为==在判断时候,会经行类型转换。所以很多网友都建议使用====,而不要使用==,但是请不要直接就此放弃他,因为他也可以经行隐形转换。

但是。。这也是有条件的,时间有限,下个博客再讲

相关文章

网友评论

      本文标题:javascript的=,==,===

      本文链接:https://www.haomeiwen.com/subject/bpsylxtx.html