亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

能幫我看下哪出錯了嗎

能幫我看下哪出錯了嗎

正在回答

2 回答

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 ,就正確了啊。

這樣說明白了嗎?


0 回復 有任何疑惑可以回復我~
#1

Lshah 提問者

不好意意思想問一下NAN什么意思呢
2016-03-24 回復 有任何疑惑可以回復我~
#2

蝎子126 回復 Lshah 提問者

not a number 的縮寫。因為你用parseInt將字符串轉為int類型了。所以提示的是NaN.
2016-03-24 回復 有任何疑惑可以回復我~
#3

Lshah 提問者 回復 蝎子126

哦哦 謝謝哈
2016-03-24 回復 有任何疑惑可以回復我~
#4

蝎子126 回復 Lshah 提問者

哈哈~不客氣~
2016-03-24 回復 有任何疑惑可以回復我~
查看1條回復

我知道哪出錯了,

var a=parseInt(document.getElementById("txt1").value);
?? var b=parseInt(document.getElementById("txt2").value);
?? var c=document.getElementById("select").value;
?? var d="";

應該放在函數里面,但是為什么要放在函數里面呢?放在外面為什么結果是 undifined呢?

0 回復 有任何疑惑可以回復我~
#1

請叫我橙子蛋

剛開始以為是你定義a b 的類型錯了,后來發現是你定義這三個類型的位置不對。 按你這個代碼頁面運行的時候先讀取了input的值。。你后面執行點擊事件的時候根本沒有去值,當然計算不出來了大兄弟
2016-03-23 回復 有任何疑惑可以回復我~
#2

Lshah 提問者 回復 請叫我橙子蛋

但是放在外面不是全局變量嗎?我不是特別懂你解釋的問題,能詳細點嗎?謝謝你~
2016-03-23 回復 有任何疑惑可以回復我~
#3

請叫我橙子蛋 回復 Lshah 提問者

我的意思是把這幾句放在點擊事件里面
2016-03-23 回復 有任何疑惑可以回復我~
#4

Lshah 提問者 回復 請叫我橙子蛋

為什么放在外面不行呢? 設置的是全局變量啊,應該都可以用啊
2016-03-23 回復 有任何疑惑可以回復我~
#5

請叫我橙子蛋 回復 Lshah 提問者

如果放在外面,你點擊計算按鈕的時候沒有仔細這幾句,也就沒有取到用戶輸入的值了
2016-03-23 回復 有任何疑惑可以回復我~
#6

Lshah 提問者 回復 請叫我橙子蛋

哦哦,謝謝你~
2016-03-23 回復 有任何疑惑可以回復我~
查看3條回復

舉報

0/150
提交
取消

能幫我看下哪出錯了嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號