为了账号安全,请及时绑定邮箱和手机立即绑定

js 中 if(参数) 和(参数==true) 不一样么 TT

js 中 if(参数)   和if(参数==true)  不一样么 TT

正在回答

4 回答

楼上的解释都不太完整。

js中用“ == ”操作符时,首先会判断两个是否属于同一类型的数据。如果数据类型不一样,比如你提问中的“参数==true“  。很显然这不是同一类型,所以js会先进行强制转换。

以这个问题“参数==true“为例,js会先将true转换成数字1,(如果是false,会转换成0),然后再将参数以Number()方法转换成数字,再进行比较。

所以如果参数的值为2,那么返回的结果就是false,

我拿参数==2为例:

if(2)返回的结果是true。

但是if(2==true)返回的结果是false。

我写一个简单的js来证明我是正确的:

<!DOCTYPE HTML>
<html>
<head>
 <meta charset="utf-8">
 <title>test</title>
</head>
<body>
<script>
   if(2==true){
       alert("2==true 返回了true");
   }
   if(1==true){
       alert("1==true 返回了true");
   }
   alert("2==true 返回了false");
</script>
</body>
</html>

0 回复 有任何疑惑可以回复我~

if后()里一定要是布尔类型的,所以两种是一样的

0 回复 有任何疑惑可以回复我~

一个是判断参数本身的真假,一个是判断参数和true比较的结果的真假,作用相当

0 回复 有任何疑惑可以回复我~

看你参数是什么了   如果是布尔类型 是一样的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Ajax全接触
  • 参与学习       224850    人
  • 解答问题       663    个

本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用

进入课程

js 中 if(参数) 和(参数==true) 不一样么 TT

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信