浅谈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


猜你喜欢
- 在平常的项目中,经常会碰到这样的问题:我需要在一张标中同时更新和查询出来的数据。例如:有如下图一张表数据,现在需要更新操作为:把status
- 一、绘图命令操纵海龟绘图有很多命令,可以划分为三种:画笔运动命令、画笔控制命令、全局控制命令1、画笔运动命令命令说明turtle.forwa
- 基于OpenCV实现拼图版小游戏,供大家参考,具体内容如下效果展示实现思路1.对图像进行分割,分割成m*n个子图2.打乱子图的顺序3.将子图
- 背景远程服务器是Ubuntu系统,操作中可以使用pycharm在windows或者Ubuntu系统上编辑代码并调试,但是首先需要profes
- 使用递归查找父元素,知道查到想要的元素,然后return getParentTag(startTag) { var self
- 前言本文主要给大家介绍了关于使用Python通过subprocess调用adb命令,subprocess包主要功能是执行外部命令(相对Pyt
- 网络训练中,loss曲线非常奇怪交叉熵怎么会有负数。经过排查,交叉熵不是有个负对数吗,当网络输出的概率是0-1时,正数。可当网络输出大于1的
- 连续看到几个和 Oracle 优化器隐含参数 _sort_elimination_cost_ratio 相关的优化案例(Refer Refe
- 今天有这样得一个需求,如果登陆人是客服的话,会查询订单是'该客服'以及还没有匹配客服的,刚开始想的是直接在sql语句上拼写&
- 1、字符串的每行末尾使用 \ 续行以多行的形式书写字符串,每行的末尾使用 \ 续行。需要注意输出内容为一行。>>> str
- 1.学习sql之前回忆一下,什么是变量?变量:能存储数据的值。变量是一块内存空间的表示。数组一连串空间变量是存储数据的容器(通俗讲)2.变量
- 1.流程控制语 break用于结束整个循环结构,直接退出整个循环例:用两种循环模拟密码输入输入正确就退出循环,输入错误可以重新输入,有三次输
- 首先,需要获取任意知乎的问题,只需要你输入问题的ID,就可以获取相关的页面信息,比如最重要的合计有多少人回答问题。问题ID为如下标红数字编写
- 进程是由系统自己管理的。1:最基本的写法from multiprocessing import Pooldef f(x): re
- 比如,在使用DWR的时候,如果你想传递下拉框的参数到后台的话,此时就需要先获取到下拉框的值了。 其实想要获取到下拉框的值是很简单的。 最关键
- 一、安装ROS-OpenCV安装OpenCVsudo apt-get install ros-kinetic-vision-opencv l
- 一. 打印图片属性、设置图片存储路径代码如下:#打印图片的属性、保存图片位置import cv2 as cvimport nump
- 一、前言mysql5.7版本开始支持JSON类型字段,本文详细介绍json_extract函数如何获取mysql中的JSON类型数据json
- 析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。GC(Garbage Collector) 在PHP中,没有任何变量指向这个对象时,
- 如下所示:# 创建一个空的 DataFramedf_empty = pd.DataFrame()#或者df_empty = pd.DataF