首页 > 编程语言 >JavaScript object.is()和严格相等、非严格相等的区别

JavaScript object.is()和严格相等、非严格相等的区别

时间:2024-03-22 14:29:18浏览次数:29  
标签:相等 false JavaScript NaN object 严格 Object 类型 true

1.==(相等运算符)

        当使用==比较两个值时,如果它们的类型不同,JavaScript会尝试将它们转换为一个共同的类型,然后再进行比较。这个过程称为类型转换或类型强制。

0 == '0'    // true,因为字符串'0'会转换为数字0
1 == true   // true,因为布尔值true会转换为数字1
null == undefined // true,因为这两个值代表空或不存在的值

2.===(全等运算符)

    ===不会进行类型转换,如果两个值的类型不同,它们就被认为是不相等的。

0 === '0'    // false,类型不同(一个是数字,一个是字符串)
1 === true   // false,类型不同(一个是数字,一个是布尔值)
null === undefined // false,类型不同(虽然它们都代表空或不存在的值)

3.object.is()

        这个方法用来判断两个值是否相同。它与===类似,但是在比较NaN-0时,object.is()的行为不同。

NaN === NaN   // false,因为NaN不等于任何值,包括它自己
Object.is(NaN, NaN) // true,因为Object.is()认为NaN等于它自己

-0 === 0     // true,因为-0和0被认为是相等的
Object.is(-0, 0) // false,因为Object.is()认为-0和0是不同的

        简单来说,object.is()===在大多数情况下表现相同,但处理NaN-0时不同。

标签:相等,false,JavaScript,NaN,object,严格,Object,类型,true
From: https://blog.csdn.net/weixin_52878347/article/details/136940230

相关文章

  • 深入解析Java中Integer类型的相等判断
    在Java编程中,Integer类型是我们经常用到的一种基本数据类型,用于表示整数。然而,对于Integer类型的相等性判断,我们可能会遇到一些意料之外的情况。本文将深入探讨Java中Integer类型的相等性判断,并解释其中的一些特殊行为。首先,我们需要理解Java中的包装类(WrapperClasses)。Java......
  • JavaScript 本地存储
    1.前言由来:localStorage和sessionStorage是HTML5标准中新加入的技术,用于保存整个网站的数据两者区别:localStorage的生命周期是永久的,除非手动删除,而sessionStorage仅在当前会话下有效(即使是同个域名下的网页也无法访问当前会话下创建的键值对,关闭页面或浏览器后被清除,刷新当......
  • JavaScript 权威指南第七版(GPT 重译)(三)
    第六章:对象对象是JavaScript中最基本的数据类型,您在本章之前的章节中已经多次看到它们。因为对象对于JavaScript语言非常重要,所以您需要详细了解它们的工作原理,而本章提供了这些细节。它从对象的正式概述开始,然后深入到关于创建对象和查询、设置、删除、测试和枚举对象属性的......
  • JavaScript 权威指南第七版(GPT 重译)(四)
    第九章:类JavaScript对象在第六章中有所涉及。该章将每个对象视为一组独特的属性,与其他对象不同。然而,通常有必要定义一种共享某些属性的对象类。类的成员或实例具有自己的属性来保存或定义它们的状态,但它们还具有定义其行为的方法。这些方法由类定义,并由所有实例共享。例如,想象......
  • JavaScript 权威指南第七版(GPT 重译)(五)
    第十二章:迭代器和生成器可迭代对象及其相关的迭代器是ES6的一个特性,在本书中我们已经多次见到。数组(包括TypedArrays)、字符串以及Set和Map对象都是可迭代的。这意味着这些数据结构的内容可以被迭代——使用for/of循环遍历,就像我们在§5.4.4中看到的那样:letsum=0;for......
  • JavaScript 权威指南第七版(GPT 重译)(一)
    前言本书涵盖了JavaScript语言以及Web浏览器和Node实现的JavaScriptAPI。我为一些具有先前编程经验的读者编写了这本书,他们想要学习JavaScript,也为已经使用JavaScript的程序员编写了这本书,但希望将他们的理解提升到一个新的水平,并真正掌握这门语言。我写这本书的目标......
  • JavaScript 权威指南第七版(GPT 重译)(二)
    第四章:表达式和运算符本章记录了JavaScript表达式以及构建许多这些表达式的运算符。表达式是JavaScript的短语,可以评估以产生一个值。在程序中直接嵌入的常量是一种非常简单的表达式。变量名也是一个简单表达式,它评估为分配给该变量的任何值。复杂表达式是由简单表达式构......
  • 详细解读JavaScript中的防抖(debounce)和节流(throttle)!!!
    在JavaScript中,防抖(debounce)和节流(throttle)是两种常用的技术,用于限制函数的执行频率,特别是在处理高频事件(如窗口的resize、scroll,输入框的keyup、mousedown等)时非常有用。防抖(debounce)防抖的基本思想是将多次执行变为最后一次执行。也就是说,在事件被触发后n秒内函数只能执......
  • JavaScript 中对象的浅拷贝(Shallow Copy)和深拷贝(Deep Copy)!!
    在JavaScript中,对象的拷贝可以分为浅拷贝(ShallowCopy)和深拷贝(DeepCopy)。理解这两者的区别是非常重要的,因为它们影响着拷贝后的对象与原始对象之间的关系。浅拷贝(ShallowCopy):浅拷贝只会拷贝对象的第一层属性。如果对象的属性是基本数据类型(例如,字符串,数字,布尔值等),那......
  • 前端基础之JavaScriptDOM和BOM
    一、JavaScript的组成JavaScript的实现包括以下3个部分:ECMAScript(核心)描述了JS的语法和基本对象文档对象模型(DOM)处理网页内容的方法和接口浏览器对象模型(BOM)与浏览器交互的方法和接口核心(Core):核心部分包括语言的基本语法、数据类型、控制结构等。这些......