首页 > 其他分享 >js 中 == 和 === 区别

js 中 == 和 === 区别

时间:2023-10-31 09:36:22浏览次数:33  
标签:类型转换 返回 相等 false 区别 数据类型 js true

在JavaScript中,===== 是用于比较值的两个不同的操作符,它们具有不同的行为:

1)==(等于):它是相等操作符,用于比较两个值是否在类型转换后相等。如果两个值的内容相等,它返回true,否则返回false。类型转换是自动的,因此在比较之前,JavaScript会尝试将两个值转换为相同的类型,然后进行比较。这可能会导致一些令人意外的结果,因为不同类型的值可以被视为相等。例如:

1 == "1" // 返回 true,因为在类型转换后,它们的值相等 
true == 1 // 返回 true,因为在类型转换后,它们的值相等 
null == undefined // 返回 true

2)===(全等):它是严格相等操作符,用于比较两个值是否在不进行类型转换的情况下完全相等。只有在值不仅相等,而且它们的数据类型也相同时,=== 才返回 true,否则返回 false。例如:

1 === "1" // 返回 false,因为它们的数据类型不同
true === 1 // 返回 false,因为它们的数据类型不同
null === undefined // 返回 false

总结来说,== 允许类型转换,而 === 要求值和类型都必须相等。通常,建议使用 === 来避免因类型转换引起的不确定性,除非您明确需要类型转换的行为。

标签:类型转换,返回,相等,false,区别,数据类型,js,true
From: https://www.cnblogs.com/helloluya/p/17799524.html

相关文章

  • 新手使用nodejs的SerialPort获取数据时需要注意的一个小点
    onData(callback:(data:Buffer)=>void):void{if(this.serialPort!=null){this.serialPort.on("data",(data:Buffer)=>{callback(data);})}}​ 上面的代码相当于当串口接收到数据之后就通知......
  • break、continue、return的区别
    1、break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文......
  • Dockerfile中'COPY'和'ADD'命令的区别是什么?
    内容来自DOChttps://q.houxu6.top/?s=Dockerfile中'COPY'和'ADD'命令的区别是什么?Dockerfile中COPY和ADD命令的区别是什么,以及何时使用其中一个而不是另一个?COPY<src><dest>COPY指令将从<src>复制新文件,并将它们添加到容器的文件系统路径<dest>。ADD<src><dest>......
  • 基于Vue.js和Vanta.js的动态天空颜色效果实现
    背景最近在写一个Vue项目,想要在登录界面加一个动态背景效果,搜索之后发现了Vanta.js(https://www.vantajs.com/)这个库。Vanta可以借助three.js(WebGL)或p5.js渲染动态的3D背景效果,提供了多种预设。几种效果都挺不错的,最终我决定采用clouds效果。随即我发现这个效果是可......
  • SocketJS使用记录
    SockJS是一个JavaScript库,用于处理WebSocket或WebSocket风格的双向通信。以下是SockJS的一些主要函数及其作用的简要介绍,并附带一些示例:newSockJS(url,[options]):创建SockJS客户端实例。url参数是WebSocket服务器的URL或端点,options是一个可选的配置对象,......
  • [Springboot整合thymeleaf]处理js中的路径问题。
    使用了thymeleaf模板引擎之后,html中的标签,都可以直接替换成th:srcth:href但是处理js的中的资源路径并不是像jsp那么简单了。可以通过以下方式解决。<!--处理路径问题--><scriptth:inline="javascript">varpath=[[${#request.contextPath}]]</script><scriptth:inl......
  • JavaWeb-JS基础
    4.JS基础(1)JS的引入方式HTML内部引入将JS代码放在“<script></script>”标签之间在HTML文档中,可以在任意地方放置任意数量的<script>一般将其放在body元素的底部,改善显示速度<script>alert("WY")//JS代码</script>外部.js文件引入在外部单独编写js......
  • var、let 和 const 有什么区别
    var、let和const有什么区别 在本文中,我将带你深入了解JavaScript中的三个变量声明关键字:var、let和const。这些关键字在声明变量时起着不同的作用,我们将逐个探讨它们的区别,并给出一些实例来帮助加深理解。1.var:传统的变量声明方式在ES5及之前的JavaScrip......
  • u-boot和bootloader到底有什么区别
    嵌入式软件工程师都听说过u-boot和bootloader,但很多工程师依然不知道他们到底是啥。今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。BootloaderBootloader从字面上来看就是启动加载的意思。用过电脑的都知道,windows开机时会首先加载bios,然后是系统内核,最后启动完毕......
  • 安防视频监控平台EasyCVR前端解码与后端解码的区别介绍
    视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,支持多类型设备、多协议方式接入,具体包括:国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome,以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等,可覆盖市面上绝大多数的视频源设备。前两期我们介绍了EasyCVRv......