Ronnie 猫's 一亩三分地

关注前端技术,一直走在追随前端的路上…For Long Time

Javascript布尔型和String类型的问题

最近在做项目时突然遇到一个问题,以前从来没注意过,那就是关于布尔型和字符串类型为“false”和“true”的时候转换问题。

具体问题代码1如下:

<script text=”text/javascript”>

var booleanStr1 = “true”;

if(booleanStr1 ){

alert(“just test OK”)

}else{

alert(“sorry, it’s not OK”)

}

</script>以上代码,无论booleanStr1  = “true” 或者是 booleanStr1  =“false” 均弹出“just test OK”。

 

在看问题代码2 如下:

<script text=”text/javascript”>

var booleanStr1 = “true”;

if(booleanStr1 == true ){

alert(“just test OK”)

}else{

alert(“sorry, it’s not OK”)

}

</script>

具体出现的问题,大家自己去测试吧。

 

后来我查阅了关于这部分的介绍:

官方说明:

Note: If the value parameter is omitted, or is 0, -0, null, “”, false, undefined, or NaN, the object is set to false. Otherwise it is set to true (even with the string “false”)!

主要是Boolean的构造函数对于字符串只要不为空都为”true”;

 

这样的话,对代码1进行改造如下:

<script text=”text/javascript”>

var booleanStr1 = “true”;

if(booleanStr1 ===“true” ){

alert(“just test OK”)

}else{

alert(“sorry, it’s not OK”)

}

</script>

 

这样就可以成功的判断是否为true或者false。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s