浅谈JavaScript中等号、双等号、 三等号的区别

作者:qq_42247917 时间:2024-04-29 13:45:04 

一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。

=== 判断规则

如果类型不同,就[不相等] 
如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断) 
如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 
如果两个值都是true,或者都是false,那么[相等]。 
如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 
如果两个值都是null,或者都是undefined,那么[相等]。 

== 判断规则:

如果两个值类型相同,进行 === 比较。 
如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: 
如果一个是null、一个是undefined,那么[相等]。 
如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 
如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 
如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核 心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我 也不大懂) 

任何其他组合,都[不相等]。

例如:


var a = 9;

var b = 9;

alert(a == b);

alert(a === b);

此时alert的值肯定是true,不管是全等还是恒等,原因应该也很简单吧,只是定义两个变量,并赋值,是相同类型,并且值也相等。可是当a和b都同时给赋个数组的时候就一定是false,这是以为地址的关系,想必也显而易见。来个小总结,嘿嘿

基本类型包括Undefined、Null、Boolean、Number和String类型,引用类型包括数组,函数和对象。

1.对于Number,String等基本类型时,双等号会先将类型转化一致再比较,值等则为true,三等号时,不会进行转化类型,直接比较,两个都相当才可为true。

2.对于数组,对象等时,不管是双等号还是三等号进行“指针地址”比较

来源:https://blog.csdn.net/qq_42247917/article/details/80786919

标签:JavaScript,等号,双等号,三等号
0
投稿

猜你喜欢

  • 用CSS设置表格Table的细边框的比较好用的方法

    2010-09-06 14:58:00
  • python实现微信自动回复功能

    2023-11-17 13:13:04
  • 支付宝lab logo设计创意发想

    2009-11-12 12:44:00
  • 在python3.64中安装pyinstaller库的方法步骤

    2022-08-12 10:27:05
  • Go语言指针用法详解

    2023-08-05 17:06:36
  • 解密ThinkPHP3.1.2版本之独立分组功能应用

    2023-11-20 09:06:02
  • MySQL连接时出现2003错误的实现

    2024-01-22 17:17:30
  • python教程网络爬虫及数据可视化原理解析

    2021-07-13 11:36:11
  • python使用scapy模块实现ping扫描的过程详解

    2023-07-07 05:29:24
  • python3实现163邮箱SMTP发送邮件

    2021-02-28 07:59:19
  • python实现beta分布概率密度函数的方法

    2021-08-02 21:39:16
  • pycharm软件实现设置自动保存操作

    2022-09-01 00:02:15
  • python Spyder界面无法打开的解决方法

    2023-03-02 09:12:09
  • 安装MySQL的步骤和方法

    2009-07-30 08:38:00
  • 讲解无法打开用户默认数据库的解决方法

    2008-12-05 15:55:00
  • 数据库连接字符串的常见问题和解决方法

    2008-11-28 15:16:00
  • PHP微信支付实例解析

    2024-05-02 17:15:56
  • 鼠年发几张可爱老鼠的表情gif

    2008-01-29 12:50:00
  • Python利用神经网络解决非线性回归问题实例详解

    2023-02-26 04:23:29
  • python 读取二进制 显示图片案例

    2021-10-15 17:27:45
  • asp之家 网络编程 m.aspxhome.com