黑马程序员技术交流社区
标题:
javaScript值比较大小的问题
[打印本页]
作者:
严海彬
时间:
2012-2-22 21:47
标题:
javaScript值比较大小的问题
本帖最后由 严海彬 于 2012-2-27 15:04 编辑
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
function getMax(arr) {
this.maxnum = arr[0];
for (var i = 1; i < arr.length; i++) {
if (arr
> this.maxnum) {
this.maxnum = arr
;
}
}
return this.maxnum;
}
function let() {
if (document.getElementById("txt")) {
var txtb = document.getElementById("txt");
var arr1 = new Array();
arr1 = txtb.value.toString().split(",");
alert(getMax(arr1));
}
}
</script>
</head>
<body>
<input type="text" id="txt" value="1,10,20,a,5,9,100" /><input type="button" onclick="let();" value="点击" />
<script type="text/javascript">
</script>
</body>
</html>
以上代码运行之后 取到的值是“a”,悲剧,这个判断的依据是什么呢? 难道是ascii码?
作者:
莫洪刚
时间:
2012-2-22 23:15
当 value="1,10,20,a,5,9,100"时,最大值是a
当 value="1,10,20,a,A,5,9,100"时,还是a
当 value="1,10,20,5,9,100"时,居然是9
当 value="1,10,20,a,A,?,5,9,100"时,居然是?号
现在我把let函数改变一下。
function let() {
if (document.getElementById("txt")) {
var txtb = document.getElementById("txt");
var arr1 = new Array();
arr1 = txtb.value.toString().split(",");
----- alert(typeof arr1[0]);----
alert(getMax(arr1));
}
}
当在let函数中执行到这里的时候
alert(typeof arr1[0]);我们发现arr1[0]是string类型
现在我们改变一下 getMax函数
function getMax(arr) {
this.maxnum = arr[0];
for (var i = 1; i < arr.length; i++) {
---- alert(typeof arr[i]);---
if (arr[i] > this.maxnum) {
this.maxnum = arr[i];
}
}
return this.maxnum;
}
当我们函数再次执行到alert(typeof arr[i]);的时候发现,循环中全部是string类型。
所以答案很明确了ASCII码。
作者:
saiyajin
时间:
2015-4-27 21:12
是严海彬老师吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2