為什么不需要定義
?req1=app2(5,6);
?req2=app2(2,3);
?sumq=req1+req2;
document.write("req1的值:"+req1+"<br/>");
document.write("req2的值:"+req2+"<br/>");
document.write(req1+"與"+req2+"和:"+sumq);
這里的req1,req2,sumq為什么不用定義就可以用?
?req1=app2(5,6);
?req2=app2(2,3);
?sumq=req1+req2;
document.write("req1的值:"+req1+"<br/>");
document.write("req2的值:"+req2+"<br/>");
document.write(req1+"與"+req2+"和:"+sumq);
這里的req1,req2,sumq為什么不用定義就可以用?
2016-07-19
舉報
2016-07-19
js可以隨時調用一個字母作為變量,第一次調用的時候隱含的就進行了var聲明。在定義一個沒有被賦值的變量時是需要var定義的。
2016-07-19
進行賦值req1=1(不帶var),執行過程如下:
情況一
該語句是在函數體(function)內,就先在函數體內找變量req1,如果找到,就是給它賦值;
如果找不到,繼續往上在函數體外找變量req1,找到賦值;還是找不到,就會自動在函數體外定義變量var req1.
情況二(即你的語句)
全局,往上找變量req1,找到賦值;找不到,就會自動定義變量var req1.
2016-07-19
JS 是弱類型解析語言,可以定義也可以不定義,運行時會自動識別類型
2016-07-19
未聲明,則識別為全局變量。
2016-07-19
js可以隨時調用一個字母作為變量,第一次調用的時候隱含的就進行了var聲明。所以是不需要定義的。