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

typescript中 == 和 === 的区别

时间:2023-06-28 10:24:53浏览次数:46  
标签:类型转换 typescript console log 区别 操作符 true 比较

在 TypeScript 中,== 和 === 是用于比较两个值是否相等的操作符。

 

== 是相等比较操作符,它在比较值时进行隐式类型转换。它会尝试将两个操作数转换为相同类型,然后再进行比较。这种隐式类型转换可能会导致一些意想不到的结果。例如:

console.log(1 == "1"); // true
console.log(true == 1); // true

在上述示例中,== 操作符会将字符串"1"隐式转换为数字 1,然后进行比较,所以结果为 true。类似地,它也会将布尔值 true 转换为数字 1 进行比较。

 

=== 是严格相等比较操作符,它会在比较值时不进行类型转换。它要求两个操作数的类型和值都相等才会返回 true。例如:

console.log(1 === 1); // true
console.log("1" === "1"); // true
console.log(true === true); // true
console.log(true === 1); // false

在上述示例中,=== 操作符要求左右两个操作数的类型和值都严格相等才返回 true。

因此,字符串和数字之间、布尔值和数字之间的比较都会返回 false,因为它们的类型不同。

所以,=== 是一种更严格和安全的相等比较方式,它不会进行类型转换,并强制要求比较的操作数在类型和值上完全一致。对于大多数情况下,推荐使用 === 进行比较,以避免类型转换引发的意外结果。

标签:类型转换,typescript,console,log,区别,操作符,true,比较
From: https://www.cnblogs.com/johnnyzhao/p/17510673.html

相关文章

  • Java线程的WAITING状态和BLOCKED状态之间区别的一点理解
    先说结论:WAITING状态是线程在获取锁对象之后,由于某些原因需要等待一些事件的完成才能继续执行,这时线程调用Object.wait()、Thread.sleep()、Thread.join()等方法进入WAITING状态。而BLOCKED状态则是线程在准备进入某个同步代码块时,发现锁对象已经被其它线程占用了,这时线程就会进入......
  • 云平台软件与传统组态软件的区别 [转发]
    远程设备运维云平台的架构一般都是控制器+网关+云平台软件,网关作为桥梁嫁接的作用,将控制器的数据上送到云,并接受来自云的命令,在权限许可的情况下,将命令转发到控制器。 咋一看,云平台软件和普通的组态软件功能感觉很像,只不过是从局域网变成了互联网,二者有什么区别呢?是不是云平台......
  • 【后端面经-Java】Synchronize和ReentrantLock区别
    目录1.概念介绍1.1线程安全锁1.2公平锁1.3响应中断/等待可中断2.区别2.1底层实现2.2锁的用法2.3锁的特点2.4性能比较2.5适用场景3.总结比较参考文献1.概念介绍1.1线程安全锁Synchronize(同步锁)和ReentrantLock(可重入锁)都是Java中的常用锁,都是用来保证线程安全的。......
  • TypeScript又出新关键字了?
    TypeScript5.2将引入一个新的关键字:using。当它离开作用域时,你可以用Symbol.dispose函数来处置任何东西。{constgetResource=()=>{return{[Symbol.dispose]:()=>{console.log('Hooray!')}}}usingresource=getResource();......
  • 什么是RESTful Web Service / webservice和restful的区别
    http://www.ruanyifeng.com/blog/2014/05/restful_api.htmlhttp://developer.51cto.com/art/200908/141825.htm 用Java技术创建RESTfulWeb服务http://www.ibm.com/developerworks/cn/web/wa-jaxrs/基于REST的Web服务:基础http://www.ibm.com/developerworks/cn/webservice......
  • FTL没有映射管理,跟上班没有钱有什么区别
    大家好,我是五月。前言FTL(FlashTranslationLayer),即闪存转换层,是各种存储设备的核心算法,作用是将Host传下来的逻辑地址转换成物理地址,也就是映射。可以说,地址映射是FTL最原始最基本的功能。 为什么需要映射NANDFlash最大的问题就是不能像内存一样随意写入。根据Flash的......
  • 山地、山脉、山系、山区、地形之间区别
    山地、山脉、山系、山区、地形之间区别  山地是众多山体的统称,由山岭和山谷组合而成。山脉是沿一定方向有规律分布的若干相邻山岭的总称。山地延伸成脉状即为山脉。山脉构成中国地形的骨架,常常是不同地形区的分界,山脉延伸的方向称作走向山系是沿一定方向延伸,在成因上有......
  • 上界、下界与确界:Ο/Ω/Θ/ο/ω之间的区别
    一、概述Ο,读音:big-oh;表示上界,小于等于。Ω,读音:bigomega、欧米伽;表示下界,大于等于。Θ,读音:theta、西塔;既是上界也是下界,称为确界,等于。ο,读音:small-oh;表示上界,小于。ω,读音:smallomega;表示下界,大于。Ο是渐进上界,Ω是渐进下界。Θ需同时满足大Ο和Ω,故称为确界。Ο极其有用,......
  • 机械硬盘和固态硬盘的区别对比,ssd和hdd的区别
    固态硬盘对于很多电脑爱好者朋友都不会陌生,大家都知道固态硬盘在电脑开关机、大型应用载入以及数据传输等方面,相比机械硬盘的速度更快。但是很多朋友对于固态硬盘和机械硬盘的区别并不是特别了解,不少朋友了解的还不够全面,加上一些厂商对SSD的美化宣传,使得一些朋友对于SSD青睐有加,而......
  • make和new的区别(笔记)
    共同点:给变量分配内存不同点:1)作用变量类型不同,new给string,int和数组分配内存,make给切片,map,channel分配内存;2)返回类型不一样,new返回指向变量的指针,make返回变量本身;3)new分配的空间被清零。make分配空间后,会进行初始化;4)字节的面试官还说了另外一个区别,就是分配的位置,在堆......