== 和 ===的区别

本文探讨了JavaScript中的恒等符号===和等值符号==的区别。===不仅要求值相等,还要求变量的类型相同,只有两者都满足时才返回true。而==在比较时,如果类型不同,会尝试将两边的值转换为相同类型再进行比较,这一过程涉及到toNumber()转换规则。
摘要由CSDN通过智能技术生成

===:为恒等符号,当等号两边的值为相同类型的时候,直接比较两边的值,值相同返回true,否则返回false;两边的值的类型不一样,返回false

==:为等值符号,当等号两边的值的类型一样的时候,直接比较值是否相等,相等返回true,否则false;如果等号两边的值类型不一样,则调用toNumber()转换成数值类型,在比较值是否相同,转化规则:

// 不同类型调用toNumber()转化后的值
undefined:NaN
null:0
boolean:true-1,false-0
number:number
string:纯数字字符串返回数值,如果字符串包含字符返回值false
object:调用valueOf   toString()
// 任何值与NaN比较都为false
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值