黑马程序员技术交流社区

标题: 注意 有关字符串类型和数值类型的处理方法 [打印本页]

作者: 心ゝ疼ㄚòひ    时间: 2012-4-16 23:19
标题: 注意 有关字符串类型和数值类型的处理方法
JavaScript 的字符串类型和数值类型之间的区别不是很明显。
例如,在下面的脚本中,"2"是字符串,而2是数值类型,因此应该返回false,但是在JavaScript 1.2以为的版本中都返回true。
<script language="JavaScript">
<!--
document.write("2"==2)
//-->
</script>
此时要注意的是,在JavaScript 1.2中,字符串类型和数值类型是有明显区别的。
例如,下面的这个脚本就返回为false值。
<script language="JavaScript1.2">
<!--
document.write("2"==2)
//-->
</script>
但是,在JavaScript 1.2中也有像下面的例子这样,给字符串设置的是-0,但是与其他版本的JavaScript一样,返回值也是false。
<script language="JavaScript 1.2">
<!--
document.write("2"-0==2)
//-->
</script>
虽然在JavaScript 1.2中明确区分了字符串类型和数值类型,但是到了JavaScript 1.3以后的版本中,又像以前版本的JavaScript一样不做区分了。
<script language="JavaScript 1.3>
<!--
document.write("2"==2)
//-->
</script>

这是由于它与ECMAScript统一样式而造成的。
在JavaScript1.3以后的版本中,如果想像JavaScript 1.2 那样区分字符串和数值类型,进行比较是,要使用JavaScript 1.3 中新添加的运算符“===”和“!==”。
例如,像下面的例子这样,使用“===”来比较值,就可以如JavaScript 1.2那样,明确区分字符串类型和数值类型,从而返回false值。
<script language="JavaScript1.2">
<!--
document.write("2"===2)
//-->
</script>










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2