当前位置: 首页 > 编程笔记 >

Javascript学习笔记之相等符号与严格相等符号

糜单弓
2023-03-14
本文向大家介绍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

" \t\r\n"    ==   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

" \t\r\n"    ===   0             // false

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

比较对象

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


{} === {};                   // false

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

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

var foo = {};

foo === foo;                 // true

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

总结

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

 类似资料:
  • 本文向大家介绍JavaScript 学习笔记之操作符,包括了JavaScript 学习笔记之操作符的使用技巧和注意事项,需要的朋友参考一下 一、一元操作符 1、自增自减操作符:分为前置型和后置型; 前置型:++a;--a; 后置型:a++;a--; 例: 其中a=i++,相当于a=i;i=i+1; 而b=++j,相当于j=j+1;b=j; 2、一元加减操作符:a=+i;a=-i; 对整数而言,一元

  • 本文向大家介绍JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记,包括了JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记的使用技巧和注意事项,需要的朋友参考一下 全文参考:https://github.com/iuap-design/blog/i

  • 本文向大家介绍javascript中的相等操作符(==与===区别),包括了javascript中的相等操作符(==与===区别)的使用技巧和注意事项,需要的朋友参考一下 1.前言 我们在编程的过程中,经常会遇到判断两个变量是否相等的情况,ECMAscript提供了两种相等操作符”==”和”===”来判断,这两种操作都会返回一个boolean值。一般来说,我们把”==”称之为相等,称”===”为全

  • 本文向大家介绍JS之相等操作符详解,包括了JS之相等操作符详解的使用技巧和注意事项,需要的朋友参考一下 1.相等 == 和不相等 != 先转换操作数再比较相等性 在转换不同的数据类型时,相等和不相等遵循以下规则: 1.1 如果有一个操作数是布尔值,则在比较相等性前先将其转换为数值---false转换为0,true转换为1; 1.2 如果一个操作数是字符串,另一个操作数是数值,则在比较相等性前将字符

  • 确定两个变量是否相等是编程中的一个非常重要的操作。在比较字符串、数值和布尔值的相等性时,问题还比较简单。但在涉及到对象的比较时,问题就变得复杂了。最早的 ECMAScript 中的相等和不等操作符会在执行比较之前,先将对象转换成相似的类型。后来,有人提出了这种转换到底是否合理的质疑。最后, ECMAScript 的解决方案就是提供两组操作符: 相等和不相等——先转换再比较, 全等和不全等——仅比较

  • shell脚本中的,有什么区别? 以下两者有什么区别吗? 仅仅是 和 仅在变量包含数字时才使用吗?