html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

Javascript学习笔记之相等符号与严格相等符号_基础知识_

[ ] 已经帮助:人解决问题

Javascript 有两种方法来判断两种值是否相等。dK4HTML5中文学习网 - HTML5先行者学习网

相等符号dK4HTML5中文学习网 - HTML5先行者学习网

相等符号由两个等号组成: ==dK4HTML5中文学习网 - HTML5先行者学习网
Javascript 是弱类型语言。这就意味着相等符号为了比较两个值将会强制转换类型。dK4HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
dK4HTML5中文学习网 - HTML5先行者学习网
""           ==   "0"           // falsedK4HTML5中文学习网 - HTML5先行者学习网
0            ==   ""            // truedK4HTML5中文学习网 - HTML5先行者学习网
0            ==   "0"           // truedK4HTML5中文学习网 - HTML5先行者学习网
false        ==   "false"       // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ==   "0"           // truedK4HTML5中文学习网 - HTML5先行者学习网
false        ==   undefined     // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ==   null          // falsedK4HTML5中文学习网 - HTML5先行者学习网
null         ==   undefined     // truedK4HTML5中文学习网 - HTML5先行者学习网
" /t/r/n"    ==   0             // truedK4HTML5中文学习网 - HTML5先行者学习网
dK4HTML5中文学习网 - HTML5先行者学习网

上面的代码展示了类型转换的结果,因此我们知道使用相等符号 == 是个不好的编程习惯。由于 Javascript 中复杂的类型转换机制,将会使得由此产生的错误变得难以追踪。dK4HTML5中文学习网 - HTML5先行者学习网
此外,类型的强制转换会对性能也造成一定的影响,例如,当一个字符串与数字进行比较时,会被强制转换为数字。dK4HTML5中文学习网 - HTML5先行者学习网

严格相等符号dK4HTML5中文学习网 - HTML5先行者学习网

严格相等符号由三个等号组成: ===dK4HTML5中文学习网 - HTML5先行者学习网
它跟相等符号的操作相似,但是严格相等符号不会做强制类型转换的操作。dK4HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
dK4HTML5中文学习网 - HTML5先行者学习网
""           ===   "0"           // falsedK4HTML5中文学习网 - HTML5先行者学习网
0            ===   ""            // falsedK4HTML5中文学习网 - HTML5先行者学习网
0            ===   "0"           // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ===   "false"       // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ===   "0"           // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ===   undefined     // falsedK4HTML5中文学习网 - HTML5先行者学习网
false        ===   null          // falsedK4HTML5中文学习网 - HTML5先行者学习网
null         ===   undefined     // falsedK4HTML5中文学习网 - HTML5先行者学习网
" /t/r/n"    ===   0             // falsedK4HTML5中文学习网 - HTML5先行者学习网
dK4HTML5中文学习网 - HTML5先行者学习网

上面的代码使得代码更加清晰,如果两个值的类型不同则直接返回 false,这也会使得性能得到提升。dK4HTML5中文学习网 - HTML5先行者学习网

比较对象dK4HTML5中文学习网 - HTML5先行者学习网

尽管 == 和 === 被称为相等符号,但是当比较的两个值中有一个类型是对象时,表现将大不相同。dK4HTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
dK4HTML5中文学习网 - HTML5先行者学习网
{} === {};                   // falsedK4HTML5中文学习网 - HTML5先行者学习网
new String('foo') === 'foo'; // falsedK4HTML5中文学习网 - HTML5先行者学习网
new Number(10) === 10;       // falsedK4HTML5中文学习网 - HTML5先行者学习网
var foo = {};dK4HTML5中文学习网 - HTML5先行者学习网
foo === foo;                 // truedK4HTML5中文学习网 - HTML5先行者学习网
dK4HTML5中文学习网 - HTML5先行者学习网

在这儿,不再仅仅是比较两个值是否相等,它将判断两个值是否引用同一个对象实例,这个行为比较像 C 中的指针。dK4HTML5中文学习网 - HTML5先行者学习网

总结dK4HTML5中文学习网 - HTML5先行者学习网

这里强烈建议只使用严格相等符号 ===。如果我们需要做类型转换,可以在比较前先做显式的类型转换,而不是靠 Javascript 本身复杂的强制转换方法。dK4HTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助