javascript和PHP中的相等运算符

最近PHP编码时使用到==比较符,发现和JS有一些差别,做记录防止混肴。
先看PHP中的例子:

$a=0;
$b='0str';
$c='1str';

if($a==$b){
	echo true;
}else{
	echo false;
}

if($a==$c){
	echo true;
}else{
	echo false;
}

输出结果分别是truefalse,原因是PHP将字符串转换为数值类型时可以将前面的数值部分(必须数字打头)提取出来当作转化结果,所以0str被转化为0,1str被转化为1

如果在javascript中,则有所不同了。看例子:

const a=0;
const b="0str";
const c="1str";
const d=1;
const e=123;
const f="123";
a==b ? console.log(true) : console.log(false);
a==c ? console.log(true) : console.log(false);
c==d ? console.log(true) : console.log(false);
e==f ? console.log(true) : console.log(false);

输出结果则是false|false|false|true,js在字符串转换为数值的时候,把其当作一个整体,不会进行类似parseInt之类的操作。所以0str1str转化的值都是NaN。因此第一行输出false。

虽然不同语言之间用法不同没必要大惊小怪,但是对于经常使用这两种开发语言的人,这种细节还是稍加注意的好。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值