“`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="add.js"></script>
<title>JavaScript</title>
</head>
<body>
<b>请输入销售商品的单价和数量:</b><br>
单价:<input type="text" id="price"><br>
数量:<input type="text" id="num">
<input type="button" value="计算" onclick="compute()">
</body>
</html>
add.js
function compute(){
var num = document.getElementById("num").value;
var price = document.getElementById("price").value;
alert("商品销售额为:"+price*num+"元");
}
为什么会出现NaN?
后来发现把定义price和num放在函数外就可以正常运行了.即
var num = document.getElementById("num").value;
var price = document.getElementById("price").value;
function compute(){
alert("商品销售额为:"+price*num+"元");
}
出现放在函数外出错的原因是,<script src="add.js"></script>放在前面,在它加载时就已经var num,var price 此时document.getElementById()get不到num和price的值,所以输出时为默认的NaN,它加载完成前就去使用了。
放在函数中,在调用后又加载了一次,所以price和num有了值.
还有一种方法就是把<script src="add.js"></script>放在</body>之后.
3.29
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<title>4-1</title>
</head>
<body>
<input id="year" type="text" name="submit" >
<button onclick="check()">检查</button>
</body>
<script type="text/javascript">
//var year=document.getElementById("year").value;原来的地方
function check()
{
----------
var year=document.getElementById("year").value;
----------
if (year%400==0) {
alert("是闰年!");
}
else
{
alert("不是闰年!");
}
}
</script>
</html>
javascript是解释性语言,当它调用到check时,尚未var year 所以也就无法判断了;