资讯专栏INFORMATION COLUMN

关于javascrip ==(等号) 和===(恒等)判断

joywek / 1306人阅读

摘要:与所有值都不相等,包括它自己判断规则,两边值类型不同的时候,要先进行类型转换,再比较。判断一个值是否是,只能用来判断如果两个都是字符串,每个位置的字符都一样,那么相等否则不相等。等号如果两个值类型相同,进行比较。

说明

在JavaScript中,下面的值被当做假(false),除了下面列出的值,都被当做真(true):

false

null

undefined

空字符串

数字 0

NaN //属性是代表非数字值的特殊值。NaN 与所有值都不相等,包括它自己

  NaN   ===  NaN     //false
  !!NaN === !!NaN    //true
判断规则

==, 两边值类型不同的时候,要先进行类型转换,再比较。

===,不做类型转换,类型不同的一定不等。

恒等(===)

如果类型不同,就[不相等]

如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。

如果两个值都是true,或者都是false,那么[相等]。

如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。

如果两个值都是null,或者都是undefined,那么[相等]

等号(==)

如果两个值类型相同,进行 === 比较。

如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

如果一个是null、一个是undefined,那么[相等]。

如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。

如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的object.toString()或者object.valueOf()方法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80074.html

相关文章

  • JavaScript 运算符与逻辑分支

    摘要:复合赋值运算符通过的形式表示,表示算术运算符。含有的运算都为和都不等于,逻辑运算符逻辑运算符通常用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符逻辑与逻辑或逻辑非。无论这个值是什么数据类型,这个运算符都会返回一个布尔值。 运算符 一元运算符 只能操作一个值的运算符叫做一元运算符 //后取值 先执行运算, 再取值 //前取值 先取值, 再执行运算 前自加: var x=...

    yankeys 评论0 收藏0
  • 10.26 酷狗音乐校招前端一面经历

    摘要:安全性请求可被缓存,请求保存在浏览器历史记录中则不能被缓存。与相比,的安全性较差,因为发送的数据是的一部分。 酷狗一面 1. 如何实现三栏布局(左右两边固定宽度,中间自适应)? 使用flex布局: 父元素设置display: flex,左右两边设置固定宽度,中间设置flex-grow: 1; 使用浮动布局:左右两边设置固定宽度,而且分别设置float:left和right,这个方法有...

    GitCafe 评论0 收藏0
  • 刷前端面经笔记(二)

    摘要:但这会带来高度塌陷的问题,所以要清除浮动。核心内置类,会尝试先于例外的是,利用的是转换。安全性请求可被缓存,请求保存在浏览器的历史记录中则不能被缓存。与相比,的安全性较差,因为发送的数据是的一部分。 1.实现三栏布局(左右两边固定宽度,中间自适应) 1)浮动布局左右两边固定宽度,并分别设置float:left和float:right。(但这会带来高度塌陷的问题,所以要清除浮动。清除浮动...

    rottengeek 评论0 收藏0
  • 关于Resnet残差网络的一些理解

    摘要:在当前的背景下,卷积神经网络提出之后,深度成为人们要追求的目标。同时,残差网络也很好的解决了梯度下降中的梯度弥散的问题。经典网络目前最主经典的残差网络莫过于。 注:整理自各个博客,并且添加个人理解 随着卷积神经网络的发展和普及,网络深度和架构研究早已经成为人们常见的问题,所以,现在卷积神经网络的趋势发展趋势就是:足够深、足够广。足够深就是网络层数足够深,足够广就意味着不能从传统尺度...

    antyiwei 评论0 收藏0
  • JavaScrip学习之Object(上)

    摘要:对象篇简介本身就是一个函数,可用于工具函数,也可以是用于构造对象的函数其次可以添加属性和方法方法又可以分为静态方法定义在自身上的和实例方法定义在原型上的工具函数作为工具函数参数可以是任意数据类型,将其转为对象如果参数是空,,则将其转换为空对 对象篇 Object简介 Object本身就是一个函数,可用于工具函数,也可以是用于构造对象的函数;其次Object可以添加属性和方法;方法又可以...

    li21 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<