`
李俊良
  • 浏览: 145232 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深入透彻又简单的理解==比较符

阅读更多

一句话理解

 

==比较先把两侧的值转化为基本数据类型

也就是Number/String/布尔

 

如果两个基本数据类型不同

然后将基本数据类型转化为数字进行比较

如果相同直接比较值

 

看比较

 

"abc" == "abc"

都是字符串,类型相同,直接比较值,所以为true

 

"1abc" == 1

不同类型 Number("1abc")为NaN

NaN == 1为false

 

[] == []

两个对象,类型相同,不会转化,但是是两个不同的实例对象,所以为false

 

[] == ![]

左侧为对象,右侧为布尔,所以进行转化

[]转化为基本数据类型使用toString方法,值为""

![]为false,可以通过Boolean(![])进行验证

false转化为数字Number(false)为0

""转化为数字Number("")为0

所以相等

 

[] == true

不同类型

[]最终转化为数字为0

true转化为数字为1

所以为false

 

[] == false

同上,所以为true

 

var b = function(){};

b == true

b为对象,转化使用toString

字符串是"function(){}"

转化为Number,使用Number("function(){}")为NaN

所以为NaN == 1结果为false

 

同样

b == false也是

NaN == 0 结果还是false

 

差不多就这些吧,谁再看到一些有意思的可以一起研究下。

分享到:
评论

相关推荐

    深入理解C#_第3版_深入理解C#_第3版_

    《深入理解C#》第三版是一本专门为C#开发者量身打造的专业教程,旨在帮助读者深化对这门语言的理解,提升编程技能。本书是C#学习路径中的重要里程碑,尤其适合已经掌握C#基础,想要进一步提升自己的程序员阅读。 C#...

    基于对象的JavaScript编程 透彻

    在JavaScript中,`typeof`操作符用于检测变量的数据类型。例如,当我们声明一个布尔值、数字或字符串变量并使用`typeof`时,它会返回对应的类型字符串,如"boolean"、"number"和"string"。 对象是JavaScript的核心...

    C语言程序设计课后答案借鉴.pdf

    以上只是部分习题的解析,实际学习中应针对每个习题深入理解并实践,确保对C语言的概念、语法和运算机制有透彻的掌握。通过解决这些习题,可以提升编程能力,为后续更复杂的编程任务打下坚实基础。

    编译原理语法分析、词法分析源代码报

    这份报告获得了优秀的评价,说明其对编译原理的理解深入且透彻。 为了进一步学习和实践编译原理,你可以参考这份报告,理解作者如何实现词法分析器和语法分析器,以及如何构造和解析AST。同时,也可以访问提供的...

    编译原理期末整理学校针对性复习hnie搞懂了及格没问题

    根据给定的文件信息,我们可以提炼出以下关于“编译原理”的关键知识点: ### 编译原理期末复习重点 ...因此,透彻理解并熟练应用这些基础知识,对于提升个人技术能力、拓展职业发展道路具有重要意义。

    C语言深度进阶篇-王桂林-v3.pdf 2019年6月最新版本

    - 多维数组的本质分析和形象描述,帮助读者透彻理解数组在内存中的布局。 4. 指针(Pointer) - 指针是C语言的核心概念之一,本书讲解了内存编址和变量地址的概念,以及如何通过指针变量进行内存访问。 - 二级指针...

    c语言深度解剖

    在C语言的世界里,深入解剖意味着对语言的底层机制有更透彻的认识。这包括但不限于以下几个方面: 1. **内存管理**:理解指针的本质,如何动态分配和释放内存,避免内存泄漏,以及理解栈和堆的区别。学习如何有效地...

    张孝祥java就业面试宝典

    备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。 4、在JAVA中如何跳出当前的多重嵌套循环? 在Java中,要想跳出多重循环,可以在外面的...

    山东大学数据结构实验4 线性表报告

    通过解决遇到的问题,不仅锻炼了编程技能,也暴露了需要改进和学习的地方,比如更深入地掌握C++语言、提高指针操作的熟练度以及对操作符重载原理的透彻理解。在后续的实验和项目中,这些都将逐步得到加强和完善。

    王爽-汇编语言汇编语言_第2版

    5. **关键环节剖析**:对于学习过程中可能会遇到的重点难点,书中提供了详尽的分析和案例研究,帮助读者透彻理解。 #### 四、相关课程的重要性 1. **数据结构**:了解汇编语言有助于深入理解数据结构中的内存管理...

    C语言难点分析整理

    本文将深入探讨"C语言难点分析整理"这一主题,旨在帮助学习者理解和克服C语言中的常见难点。 一、指针操作 在C语言中,指针是其精髓之一,也是许多初学者的困惑所在。理解指针的含义、类型、运算符以及如何通过指针...

    javascript 100例

    1. **基础语法**:JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、对象和数组)、操作符(如算术、比较、逻辑和赋值操作符)以及流程控制(如条件语句if......

    87以MySQL单表查询来举例,看看执行计划包含哪些内容(2)?.pdf

    在深入理解MySQL单表查询的执行计划时,我们首先要明白执行计划是数据库管理系统对SQL语句执行策略的描述。执行计划中会包含查询所需进行的各种操作步骤,如扫描方式、表连接的顺序、过滤条件的使用等,并用特定的...

    编译原理实验1-词法分析.pdf

    - 在实验报告和视频讲解中,除了代码展示外,还需对各个部分的功能和实现细节进行详细解释,确保理解透彻。 通过本次实验的学习,不仅能够增强学生对于词法分析这一基础概念的认识,还能有效提升其实现复杂程序的...

    Java面试指南2016

    本书《Java面试指南2016》是面向准备进行Java相关技术面试的求职者,旨在帮助他们深入理解Java语言的底层原理和高级特性。书中不仅包含了互联网公司常问的技术题目,还补充了数据结构与算法、设计模式等相关知识点,...

    编译原理实验 词法分析 Sample语言

    在编程和计算机科学领域,编译原理是一门关键的课程,它涉及到将高级语言转换为机器可理解的二进制代码的过程。在这个过程中,词法分析是编译器的首要...在实践中不断探索和完善,将使我们对编译原理的理解更加透彻。

Global site tag (gtag.js) - Google Analytics