前端 JS 经典:双等号运算符的运算和转换规则

1. 运算规则

两端存在 NaN,返回 false

NaN == NaN; // false
NaN == 1; //false

undefinednull 只有与自身比较,或者相互比较时,才返回 true,和其他原始类型比较都返回 false。

undefined == null; // true
undefined == undefined; // true
null == null; // true

两端类型相同,比较值

1 == 2; // false
"yq" == "yqcoder"; // false

两端都是原始类型,转换成数字重新比较

0 == false; // true
"1" == 1; // true

一端是原始类型,一端是对象类型,把对象转换成原始类型后重新比较。

// 当有 [Symbol.toPrimitive] 符号时
let obj = {[Symbol.toPrimitive]() {return 2;},
};
obj == 2; // true// 如果没有 [Symbol.toPrimitive]时, 先调用 valueOf() 拿原始值,如果没有再调用 toString() 拿原始值
let obj = {valueOf() {return {};},toString() {return 4;},
};
obj == 4; // true// 使 obj == 1 && obj == 2 && obj == 3 成立
let obj = {count: 1,valueOf() {return this.count++;},
};
obj == 1 && obj == 2 && obj == 3; // true

2. 对象如何转原始类型

  1. 如果对象拥有[Symbol.toPrimitive]方法,调用该方法。若该方法能得到原始值,使用该原始值,若得不到原始值,抛出异常
  2. 调用对象的 valueOf 方法,若该方法能得到原始值,使用该原始值,若得不到原始值,进行下一步
  3. 调用对象的 toString 方法,若该方法能得到原始值,使用该原始值,若得不到原始值,抛出异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/12823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter组件封装技巧

这段代码是一个用于创建一个(GradeTag)组件的类。这个组件可以根据输入的年级和颜色创建一个具有不同颜色和百分比显示的标签。 实现原理: 使用GradeTag.origin构造函数来创建一个包含默认颜色和百分比的字符串。这个构造函数使用了assert来…

如何使用AspectJ做切面,打印jar包中方法的执行日记

最近在工作中遇到一个redis缓存中的hash key莫名其妙被删除的问题,我们用了J2Cache,二级缓存用的是redis。hash key莫名其妙被删除又没有日志,就想到做一个切面在调用redis删除hash key的方法的时候,打印日志,并且把调…

高德、百度开车导航APP是怎么知道红绿灯倒计时的?

高德、百度开车导航APP之所以能够知道红绿灯的倒计时,这背后是一系列复杂的科技手段和数据分析的综合运用。从交管部门提供的数据,到导航软件自身通过大数据和算法进行的计算,每一个环节都为红绿灯倒计时的准确呈现提供了支撑。 首先&#xf…

白酒:低酒精度白酒的消费特点与市场前景

低酒精度白酒的消费特点与市场前景是酒类市场的一个重要话题。随着品质意识的提高和消费者口味的多样化,低酒精度白酒逐渐受到越来越多的关注。云仓酒庄豪迈白酒作为白酒的品牌之一,其消费特点和市场前景值得深入探讨。 首先,从消费特点来看…

基于YOLOv5的道路裂缝检测,加入一种基于内容引导注意力(CGA)的混合融合提升2个多点

💡💡💡本文主要内容:详细介绍道路裂缝检测整个过程,从数据集到训练模型到结果可视化分析。 💡💡💡通过加入一种基于内容引导注意力(CGA)的混合融合提升检测性能, 特征融合创新 | 一…

WS2812C是一款将控制电路和RGB芯片集成在一个5050元器件封装中的智能控制LED光源

一般说明 WS2812C是一款将控制电路和RGB芯片集成在一个5050元器件封装中的智能控制LED光源。内部包括智能数字端口数据锁存器和信号整形放大驱动电路。还包括一个精密的内部振荡器和一个 12V电压可编程恒流控制部分,有效保证像素点光源颜色高度一致。 …

决策规划仿真平台的搭建

以下内容笔记据来自于b站up主忠厚老实的老王,视频;链接如下: 自动驾驶决策规划算法第二章第一节 决策规划仿真平台搭建_哔哩哔哩_bilibili 使用到的软件有matlab、prescan、carsim以及visual stadio。 我电脑上软件的版本是matlab2022a&am…

2024.1IDEA 到2026年

链接:https://pan.baidu.com/s/1hjJEV5A5k1Z9JbPyBXywSw?pwd9g4i 提取码:9g4i解压之后,按照 操作说明.txt 操作; IntelliJ IDEA 2024.1 (Ultimate Edition) Build #IU-241.14494.240, built on March 28, 2024 Licensed to gurgles tumbles You have…

Python代码:二、多行输出

1、题目 将字符串 Hello World! 存储到变量str1中,再将字符串 Hello Nowcoder! 存储到变量str2中,再使用print语句将其打印出来(一行一个变量)。 2、代码 import sys str1 Hello World! str2 Hello Nowcoder! print (str1,st…

详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西

Cookie Cookie是一种小型的文本文件,由网站在用户访问时存储在其计算机或移动设备上,Cookie主要用于跟踪、识别和存储有关用户的信息。 简单来说Cookie就是用来存储某些后端发送给前端的数据,例如我们登陆后,后端会返回一个登录…

Vue3 + Avue中 Header slot写法

avue示例 <template><avue-crud ref"crud":option"option":data"data"><template #name-header"{column}"><el-tag>{{(column || {}).label}}-{{(column || {}).prop}}</el-tag></template><…

02、网络协议、IP地址、网络状况、网络异质性问题的解决

声明&#xff1a;本教程不收取任何费用&#xff0c;欢迎转载&#xff0c;尊重作者劳动成果&#xff0c;不得用于商业用途&#xff0c;侵权必究&#xff01;&#xff01;&#xff01; 目录 前言 一、IP地址 二、网络协议 三、网络状况【了解】 四、网络异质性问题的解决 前…

C++ requires关键字简介

requires 是 C20 中引入的一个新关键字&#xff0c;用于在函数模板或类模板中声明所需的一组语义要求&#xff0c;它可以用来限制模板参数&#xff0c;类似于 typename 和 class 关键字。 requires关键字常与type_traits头文件下类型检查函数匹配使用&#xff0c;当requires后…

激光雷达技术:科技之眼,照亮前行

在科技与人文关怀的交响乐章中&#xff0c;一项名为“蝙蝠避障”使用了激光雷达技术原理及应用的创新成果&#xff0c;正悄然改变着视障朋友们的生活方式&#xff0c;为他们的日常出行铺设了一条充满希望的光明之路。今天&#xff0c;让我们一起深入探讨这项技术如何成为盲人出…

深化市场布局与产业链整合,三清互联以创新为公司发展赋能

近年来&#xff0c;我国大力发展现代化电力体系&#xff0c;并不断推进智能电网的发展&#xff0c;电力物联网作为支撑电力行业数字化发展的关键基础设施&#xff0c;迎来了快速发展黄金时期。作为电力物联网领域领先企业之一&#xff0c;三清互联凭借敏锐的市场洞察力和技术创…

探索软件测试中的创新测试方法:测试左移

软件测试中的测试左移方法 在当今竞争激烈的市场中&#xff0c;满足客户的期望和需求是所有公司在竞争中成为市场领导者的关键。这就是为什么越来越多的公司现在转向测试左移&#xff0c;并将其应用于产品开发过程。 在本文中&#xff0c;我们将从初学者的角度来介绍测试左移…

cmd如何以管理员身份运行

打开开始菜单。 在搜索框中输入cmd。 在搜索结果中&#xff0c;找到cmd&#xff0c;右键单击&#xff0c;选择“以管理员身份运行”。 参考&#xff1a; cmd如何以管理员身份运行

2024最新大厂C++面试真题合集,大厂面试百日冲刺 bay10

字节后端 什么叫进程&#xff1f;什么叫线程&#xff1f;他俩有什么区别和联系&#xff1f; 进程是操作系统进行资源分配和调度的基本单位&#xff0c;是一个程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的独立单位。 线程是进程的一个执行流&am…

刷题之字母异位词(leetcode 哈希表)

https://leetcode.cn/problems/group-anagrams/ class Solution { public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>>map;//哈希表键为排序后或者处理后的字符串&#xff0c;值为某…

(1)医疗图像处理:MRI磁共振成像-基本原理--(杨正汉

一、基本原理 1.组成 对应了解 1&#xff09;主磁体&#xff1a; 基本构建&#xff0c;用于产生磁场&#xff0c;主要有两种方式产生磁场永磁&#xff08;磁铁&#xff09;、电磁&#xff08;给线圈通电&#xff09;。MR按主磁场的场强分类主要有四类&#xff0c;分类的原因…