js 中 if(参数) 和(参数==true) 不一样么 TT
js 中 if(参数) 和if(参数==true) 不一样么 TT
js 中 if(参数) 和if(参数==true) 不一样么 TT
2016-08-06
楼上的解释都不太完整。
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>
举报