博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于javascrip ==(等号) 和===(恒等)判断
阅读量:6711 次
发布时间:2019-06-25

本文共 732 字,大约阅读时间需要 2 分钟。

说明

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

  1. false

  2. null

  3. undefined

  4. 空字符串

  5. 数字 0

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

NaN   ===  NaN     //false  !!NaN === !!NaN    //true

判断规则

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

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

恒等(===)

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

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

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

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

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

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

等号(==)

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

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

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

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

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

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

      图片描述

转载地址:http://cwolo.baihongyu.com/

你可能感兴趣的文章
Xcode 调试技巧-b
查看>>
几种常见SQL分页方式效率比较
查看>>
socket中的SO_REUSEADDR
查看>>
Android中Bitmap、Drawable、byte[]转换
查看>>
[杂记]是否有必要精通unix的shell语法?
查看>>
Oracle 数据类型及存储方式(二)
查看>>
UNIX时间戳的应用-JAVA
查看>>
Intelij 中javax.servlet.http.HttpServlet包导不进来
查看>>
dynamic disk无损转为basic disk
查看>>
SoftReference缓存图片
查看>>
PHP关闭(禁止)脚本错误提示的方法及让脚本错误提示输出为日志文件的方法
查看>>
URAL 1013 K-based Numbers. Version 3
查看>>
[转]请记住别拿自己跟别人比较
查看>>
Boost简介
查看>>
计算机常用端口一览表:
查看>>
Android 自带图标库 android.R.drawable
查看>>
HTTP Error: status code 302. I/O Error: Error #2038. ckfinder报错
查看>>
java.util.Date和java.sql.Date的区别和相互转化
查看>>
selenium面试题总结
查看>>
本次孩子流感总结
查看>>