手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >Javascript学习笔记之相等符号与严格相等符号
Javascript学习笔记之相等符号与严格相等符号
摘要:Javascript有两种方法来判断两种值是否相等。相等符号相等符号由两个等号组成:==Javascript是弱类型语言。这就意味着相等符号...

Javascript 有两种方法来判断两种值是否相等。

相等符号

相等符号由两个等号组成: ==

Javascript 是弱类型语言。这就意味着相等符号为了比较两个值将会强制转换类型。

复制代码 代码如下:

"" == "0" // false

0 == "" // true

0 == "0" // true

false == "false" // false

false == "0" // true

false == undefined // false

false == null // false

null == undefined // true

" trn" == 0 // true

上面的代码展示了类型转换的结果,因此我们知道使用相等符号 == 是个不好的编程习惯。由于 Javascript 中复杂的类型转换机制,将会使得由此产生的错误变得难以追踪。

此外,类型的强制转换会对性能也造成一定的影响,例如,当一个字符串与数字进行比较时,会被强制转换为数字。

严格相等符号

严格相等符号由三个等号组成: ===

它跟相等符号的操作相似,但是严格相等符号不会做强制类型转换的操作。

复制代码 代码如下:

"" === "0" // false

0 === "" // false

0 === "0" // false

false === "false" // false

false === "0" // false

false === undefined // false

false === null // false

null === undefined // false

" trn" === 0 // false

上面的代码使得代码更加清晰,如果两个值的类型不同则直接返回 false,这也会使得性能得到提升。

比较对象

尽管 == 和 === 被称为相等符号,但是当比较的两个值中有一个类型是对象时,表现将大不相同。

复制代码 代码如下:

{} === {}; // false

new String('foo') === 'foo'; // false

new Number(10) === 10; // false

var foo = {};

foo === foo; // true

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

总结

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

【Javascript学习笔记之相等符号与严格相等符号】相关文章:

javascript字符串与数组转换汇总

javascript获取文档坐标和视口坐标

Javascript节点关系实例分析

javascript常用方法总结

JavaScript实现DIV层拖动及动态增加新层的方法

javascript基础知识分享之类与函数化

JavaScript基于setTimeout实现计数的方法

Javascript 小技巧全集第1/4页

Javascript 高阶函数使用介绍

javascript实现可全选、反选及删除表格的方法

精品推荐
分类导航