? ?var a=parseInt(document.getElementById("txt1").value); ?? var b=parseInt(document.getElementById("txt2").value); ?? var c=document.getElementById("select").value; ?? var d="";
var a=parseInt(document.getElementById("txt1").value); ?? var b=parseInt(document.getElementById("txt2").value); ?? var c=document.getElementById("select").value; ?? var d="";
2016-03-23
Q1:放在外面為什么結果是 undifined呢?
因為html的執行順序是從上至下的。你的? <script></script>是在上面的,
所以你在執行var a=parseInt(document.getElementById("txt1").value)時;頁面中的input還沒有加載出來。獲得不到這個元素,所以顯示為undifined而不是NaN;
你可以自己測試一下:
(1)把<script>代碼</script>放在<head>里。顯示為undifined。
(2)把<script>代碼</script>放在頁面最下面<body>里。顯示為NAN;所以一般推薦將JS代碼放在下面。
Q2:但是為什么要放在函數里面呢?
? ? 如果放在外邊,頁面加載完成后就已經執行了
? ?var a=parseInt(document.getElementById("txt1").value);
?? var b=parseInt(document.getElementById("txt2").value);
?? var c=document.getElementById("select").value;
?? var d="";
? ?而此刻你的輸入框里還是空的。所以a =NaN,b=NaN;
? ?當你輸入數字時,? 完點擊“=”,調用count()方法時。a,b,的仍為NaN;
? ?放在里面,點擊“=”時,才獲取a,b輸入框的值。所以就不為NaN ,就正確了啊。
這樣說明白了嗎?
2016-03-22
我知道哪出錯了,
var a=parseInt(document.getElementById("txt1").value);
?? var b=parseInt(document.getElementById("txt2").value);
?? var c=document.getElementById("select").value;
?? var d="";
應該放在函數里面,但是為什么要放在函數里面呢?放在外面為什么結果是 undifined呢?