谁懂这段JavaScript语句(高分求解)

来源:百度知道 编辑:UC知道 时间:2024/06/02 00:19:50
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT LANGUAGE=javascript>
function sumNum()
{
var number1 = isNaN(parseInt(num1.value,10))?0:parseInt(num1.value,10);
var number2 = isNaN(parseInt(num2.value,10))?0:parseInt(num2.value,10);
sum.innerText = number1 + number2;
}
</SCRIPT>
</HEAD>
<body>
<INPUT TYPE="text" id="num1" onpropertychange="sumNum()">
<INPUT TYPE="text" id="num2" onpropertychange="sumNum()">
<div id=sum></div>
</BODY>
</HTML>
如果正确回答对了 追加分
那var number1 = isNaN(parseInt(num1.value,10))?0:parseInt(num1.value,10); isNaN(parseInt(num1.value,10))
是怎么和<INPUT TYPE="text" id="num1" onpropertychange="sumNum()">联系起来的呢

1.isNaN 方法
返回一个 Boolean 值,指明提供的值是否是保留值 NaN 。而这个NaN值的是非数字。使用这个函数的典型情况是检查 parseInt 和 parseFloat 方法的返回值。也就是说:
用isNaN(numValue)得到true,则说明numValue是非数字,非数字不一定是字符串,所以lzj203355的回答还是有点问题的。
还有一点顺便说下,当然这和你的问题没有关系:NaN是唯一与自身不等的值。如果一个变量variable不等于自身,那么variable肯定是NaN。

2.parseInt 方法
返回由字符串转换得到的整数。一般用法为:parseInt(numString, [radix])。说明下radix是可选参数,而numString是必选参数。numString就不说明了,说下radix。radix是在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

isNaN这个方法是判断对象是不是字符串,返回的结果是true和false,
true和false的另一种表示方法就是 非0和0
即 false 0 ;true 非0

boolean?表达式1:表达式2

这是一个三元表达式,一般的编程语言中都保留.
当前面的结果为true时,返回的结果是 表达式1,false时,返回的结果是表达式2,

和下边的语句等价

if(boolean){
表达式1
}else{
表达式2
}

parseInt()方法是将字符串转化为数字,但这个字符串只能是0123456789的组合,
这样也就可以理解前面的判断了,
当你输入的是字符串的话,那得到的结果是0,如果是数字的字符串,那就转化成数字

然后将两个文本框中的值加和,

解发sumNum()