规则

  • === 表示严格相同–> 数据类型 与 值 都相等时才为true,否则为false;
  • == 表示相同–>先检查两个操作数数据类型,如果相同, 则进行比较; 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较;
    • null与undefined:值 null 和 undefined 相等,在检查相等性时,不能把 null 和 undefined 转换成其他值;

      • undefiend与null进行比较时为true,其余均为false;
      • null在与undefined进行比较时为true,其余均为false;
    • boolean值:如果有一个运算数是boolean值,在进行值比较时,会将boolean值转化为 数字进行再进行比较;
      • ture:1;
      • false:0;
      • true == '1' // true
        true == 'a' // false
        
    • 字符串:当数组和对象再与字符串进行比较时–>会将数组和对象转化为字符串再进行比较;
      • [11] == '11' // true
        
    • 数字:当数组和对象再与数字进行比较时–>会将数组和对象转化为数字再进行比较;
    • 对象:比较引用值是否相等;
    • NaN:与任何值都不相等(包含本身)

比较(==)举例

let a = 'aaa'
let b = String('aaa')
let c = new String('aaa')
let d = new String('aaa')
console.log('结果',a==b,a==c, b==c, c==d) // true true true false
  • a与b:数据类型相同–直接比较;值相同–true;
  • a与c:数据类型不同,会将c转化为字符串类型再进行比较;值相同–true;
  • b与c:数据类型不同,会将c转化为字符串类型再进行比较;值相同–true;
  • c与d:数据类型相同–直接比较;值不同(复杂数据类型,栈中为堆中数据的地址)–false

比较(===)举例

let a = 'aaa'
let b = String('aaa')
let c = new String('aaa')
let d = new String('aaa')
console.log('结果',a===b,a===c, b===c, c===d) // true false false false

值比较(==与===)相关推荐

  1. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  2. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  3. Redis 笔记(10)— 发布订阅模式(发布订阅单个信道、订阅信道后的返回值分类、发布订阅多个信道)

    1. 发布-订阅概念 发布-订阅 模式包含两种角色,分别为发布者和订阅者. 订阅者可以订阅一个或者若干个频道(channel): 而发布者可以向指定的频道发送消息,所有订阅此频道的订阅者都可以收到此消 ...

  4. etcd 笔记(07)— 键值对读写操作过程

    1. 读写总体概述 etcd 各个模块交互的总览,如下图所示: 总体上的请求流程从上至下依次为客户端 → API 接口层 → etcd Server → etcd raft 算法库. 读请求 客户端通 ...

  5. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)

    1. etcd 客户端 etcdctl 是一个命令行客户端,便于我们进行服务测试或手动修改数据库内容,etcdctl 在两个不同的 etcd 版本(v2 和 v3)下的功能和使用方式也完全不同. 一般 ...

  6. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  7. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  8. Go 学习笔记(61)— Go 高阶函数、函数作为一等公民(函数作为输入参数、返回值、变量)的写法

    函数在 Go 语言中属于"一等公民(First-Class Citizen)"拥有"一等公民"待遇的语法元素可以如下使用 可以存储在变量中: 可以作为参数传递给 ...

  9. Golang 元素值在经过通道传递时会被复制,这个复制是浅复制

    1. channel 元素值为切片 package mainimport ("fmt" )func main() {ch := make(chan []int, 3)s := [] ...

  10. OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算

    数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...

最新文章

  1. 基于SSM实现的图书馆管理系统
  2. shell去除字符串前所有的0
  3. Flex实现分页显示功能(mx:DataGrid)
  4. 怎么使用小爱同学音响_智能音响购买指南!!!
  5. 【Mockplus教程】界面闪烁花屏怎么办?
  6. iPhone开发--NSDate操作(转)
  7. kubectl命令大全
  8. 项目总结报告(联东U谷)
  9. oracle去除字段值的所有英文
  10. Postman测试post接口
  11. MFC界面库BCGControlBar v32.0 - 网格、报表控件升级
  12. 拓扑排序算法 C语言实现
  13. 计算机远程终端控制示意图,Windows远程控制完全指南
  14. java识别答题卡纸_opencv 识别答题卡
  15. java中怎么改变白天模式,android 白天黑夜模式切换例子源码
  16. 大学物理实验计算机仿真 光电效应,大学物理实验报告模版
  17. SAM-DETR源码讲解
  18. 腾讯跟阿里两位王者之间的对比
  19. 助力高效办公,TOM企业邮箱网页版全面升级
  20. 自己写的代码太low?想提升代码质量但是不知道怎么做?IDEA安这个插件~

热门文章

  1. Elasticsearch全文搜索引擎,从0到0.6
  2. 大鹅跌倒,波司登难立?
  3. 『 Spark 』1. spark 简介
  4. PTA: 天梯地图 [狄杰斯特拉+堆优化+链式前向星]
  5. 星辰天合参加首届数字驱动创新峰会 强调以 SDS 加速数据基础设施建设
  6. 封装自己专属的真正的纯净版Windows系统过程记录(3)——封装前优化及清理
  7. 【报告分享】中国音乐市场年度综合分析2021-易观智库(附下载)
  8. 医疗器械安全要求检查GB9706.1-2020标准注册检报告_安规性能试验新版GB9706.1-2020风险管理要求
  9. 如何修改电脑磁盘盘符
  10. mercurymw305r虚拟服务器,水星(Mercury)MW305R无线路由器设置 | 192路由网