js中 0=="00" 为什么等于true;是绝对的吗 如果用来做判断会不会出问题

JavaScript023

js中 0=="00" 为什么等于true;是绝对的吗 如果用来做判断会不会出问题,第1张

js的变量没有严格的类型,在js中0表示整数0,“00”表示字符串。

在0 == “00”比较的时候,会将“00”转换成整型在比较,转换结果就是0 == 0,即true。

这么判断没有问题,但不推荐,在阅读代码、修改代码等方面都会有影响

0 是逻辑的 false

1 是逻辑的 true

空字符串是逻辑的 false

null 是逻辑的 false

NaN 是逻辑的 false

因此可以得出结论

空字符串是逻辑的 false == 0是逻辑的false

false==false 肯定是对的!

记住上述结论就可以了!

可以让程序说话,下面这段代码得到证实:

<html>

<body>

<script type="text/javascript">

var b1=new Boolean( 0)

var b2=new Boolean(1)

var b3=new Boolean("")

var b4=new Boolean(null)

var b5=new Boolean(NaN)

var b6=new Boolean("false")

document.write("0 是逻辑的 "+ b1 +"<br />")

document.write("1 是逻辑的 "+ b2 +"<br />")

document.write("空字符串是逻辑的 "+ b3 + "<br />")

document.write("null 是逻辑的 "+ b4+ "<br />")

document.write("NaN 是逻辑的 "+ b5 +"<br />")

document.write("字符串 'false' 是逻辑的 "+ b6 +"<br />")

</script>

</body>

</html>