网站地图    收藏   

主页 > 前端 > javascript >

Javascript数字大小比较时警惕对象类型

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 在js中大小比较用到最多的无非是就是我们常用的数值型数据进行对比了,但是如果我直接普通对比可能会出现问题,下面我来给大家介绍大小比较时一些注意事项。...

通过js获取页面两个数字输入框的值,并对其进行大小比较。此时出来的结果可能让你迷惑不解,例如代码:

 代码如下 复制代码

var v1 = $('#input1').val();
var v2 = $('#input2').val();
alert(v1 > v2);

假如input1中输入10,input2中输入2。10肯定是大于2的,所以上面的alert框应该弹出true,但实际上给出的是false。原因何在?对应数字10大于2是毫无疑问的,如果是作为字符串比较,那么结果刚好相反。而上述从页面获取值得到的类型是String。


 代码如下 复制代码

<script>
   alert( '120' > '40');   //false, 因为 1<4
   alert( 120 > 40.00); //true
</script>

 
在js脚本中, 有时候需要比较两个值的大小, 并且这两个值都是数字,
 

 代码如下 复制代码

function getBigger(a,  b){

     return a > b? a:b;

}

如果明确是要进行数字比较,则需要显示的转化为数字,例如使用parseInt、parseFloat;还有一种方法是使用减法运算符,如:v1 – v2 > 0,此时js在运算前内部会进行类型转换。

 代码如下 复制代码

<html>
<head>
<script language="javascript">
function compare()...{
if(parseInt(document.form1.a.value) < parseInt(document.form1.b.value))...{
alert("a <b");
}else...{
alert("a>b");
}

}
</script>
</head>
<form name=form1>
<input name=a type=text/>
<input name=b type=text/>
<input type=button onclick="compare()" value="compare"/>
</form>
</html>

parseInt ( cString )从字符串cString非空字符开始转换得到的整数,遇到小数点或其他0-9外的字符就停止,如“-1234a”,“-1234.0”都将返回-1234;如果除第一个符号外一个0-9字符都不是,将返回NaN,如“-a”、“abc”等;

另外由于加法运算符同时支持数字和字符串,使用这个时候也要小心。例如 a + b ,如果其中一个是字符串类型,一个是数字类型,在执行运算前会把另外一个转化为字符串类型,所以实际是进行字符串链接操作,而不是想要的算术运算。在确定是要做算术运算的情况下,对于未知类型的参数,保险的情况下还是使用parseInt进行类型转换。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论