j**ascript 區域性變數和全域性變數的問題
1樓:網友
這個怎麼說呢,有點複雜。
在uc方法中,有乙個a="2",如果只有這個的話,沒有後面的var a="3",那麼這個a,就是全域性變數了。
你不妨把var a="3"釋掉試試,看是不是這個情況?
可是你在這個方法裡,卻出現了對a這個變數的var宣告,那麼在這個方法裡,a就是正宗的區域性變數,而非外面的全域性變數了。
因為在乙個作用函式域裡,js是會先尋找function這樣的函式定義,先尋找var變數宣告,然後再去一步步執行js賦值、運算等程式步驟的。
比較如下面的程式:
a = 3;
var a;
那麼,程式會先把a宣告瞭,然後再去給它賦值3所以,你的例程看似簡單,卻包含有兩處js的特性:
1. js在執行程式前,會尋找變數宣告,並決定其作用域;
2. js的區域性變數和全域性變數;
你那麼有錢(財富值),怎麼不多給點??!
2樓:網友
我測試了一下應該是這樣的。
你的全域性想要a = 1 a= 2
但是實際效果是 當執行到a= 2 的時候下面有個區域性變數a=3把 變數a=2替換了 當執行dc()的時候取得的值a 僅僅是最外層的全域性變數a=1 所以怎麼也得不到a=2 如果你想 a=2 那麼就把區域性變數a=3 換值。
js中全域性變數應該怎麼設定?
3樓:dog檔案
定義在方法外的變數,整個js都能引用到,這就是全域性的。
按照js編寫規範 全域性變數一般定義在最開始 方便統一管理。
4樓:網友
在script 標籤中宣告變數就是全域性,不要寫在方法裡面。
5樓:網友
不寫var就是全域性變數了,例如。
function f()
f();alert(test);
6樓:匿名使用者
直接寫在後面的,變數後面接的是function
j**ascript全域性變數與區域性變數?
7樓:網友
js中變數分為全域性變數和區域性變數兩種,在函式內使用var宣告的變數是區域性變數,不管在函式的什麼地方出現,都等價于于在函式一開始宣告。所以,在第一次alert時首先查詢區域性變數variable,此時該區域性變數已經宣告過了,只是還未賦值,所以是undefined。
8樓:司馬唐遷
去搜一下js的變數提公升。
js中區域性變數能修改全域性變數嗎?
9樓:匿名使用者
把i作為全域性變數抄。
就可以了襲。
然後控制條件判斷,當i為假時,執行操作後使其變為真;當i為真時,執行操作後使其變為假,這樣就能迴圈了。
var i=false;
function fun()
else}
j**ascript 變數問題(二)當全域性(在先)與區域性(在後)共存於乙個函式內,例子如下:
10樓:匿名使用者
發表一下我的愚見,錯誤難免懇請指正。^_
對js來說之間的function都是平等的。都是;
它們在執行前都平等的享有函式體外的變數(全域性變數)的權利,即就是初始的全域性變數在它們的體內都是相同的(如果這個函式使用了全域性變數);
只有在函式執行的時候才能 《自己》 修改變數的值(包括區域性和全域性的)其他地方都不能,包括他parent function;
儘管乙個函式在另乙個函式內被呼叫,但是如果 另乙個函式 沒有將修改後的變數通過這個函式的引數傳給它,那它仍然是static的,將保持它體內的全域性變數不變。
分析一下你「自己的分析」的思路:
js中有沒有用var定義a在函式體外是一樣的,只有在函式體內var a才會和沒有var有區別,函式體內加了var就不會修改全域性a了。
按我的見解,(4)處 就應該是「了。 (1)處的a是絕對是全域性變數,毋庸置疑!
你的問題根據前面的分析得知, 在(1)處的a是全域性變數。因為這就是全域性變數的寫法(可以不寫var),(4)處的提示為什麼是" ",是因為一開始所有函式都沒有執行,它們都直接使用全域性變數,即a=1; 而所有函式執行順序為:
alert(a+".3");
uc();// ,dc();因為uc沒有通過引數修改dc內部的變數a,故內部a仍然=1。
補充: 謝謝指出錯誤。 那裡確實不是傳遞引數的問題。
zhifeichuan說的很專業,應該是準確的,傳引數仍然只是函式對全域性變數的引用,不能說明什麼問題。我又發現函式體裡如果使用了var a,那麼不管a在var之前使用還是之後使用都是這個函式的區域性變數。即此a 非彼a,和 zhifeichuan 的理論是符合的。
比如你去掉(2)處的var,然後在dc() 後面加入「var a='4'; dc();就有個有趣的現象。
window下Nginx怎麼安裝啟動
window環境下,nginx安裝啟動的步驟如下 開啟命令列視窗 win r 輸入cmd,然後確定 進入解壓目錄 cd d d nginx 輸入 start nginx 然後回車,開始執行nginx。執行之後,可執行nginx s stop 關閉nginx。nginx還有其他選項供選擇 nginx ...
魔域在5173裡怎麼交易,魔域在5173裡怎麼交易?
首先你要有5173的帳號,同時為了買賣交易順利進行,你必須有一個銀行卡與5173帳號繫結。如果你是買,你可以先選擇好具體要買的東西,然後根據具體的金額向5173匯款,轉成5173幣後即可支付。支付成功後,根據 提示的交易員聯絡,就可以進遊戲買到手裡了。如果你是賣,根據你賣的東西進行選擇,如裝備,遊戲...
python怎麼在具體函式中宣告全域性變數
在乙個函式中用global宣告乙個變數,在函式外是可以呼叫的,但是在另外乙個函式中就無法使用 我本地測試是無法使用,不知道是不是這樣 要想所有函式都能使用,只能在函式外定義了 python中,如何把乙個在函式內部定義的變數變為global變數 嚴格的說,象你這麼用是絕對屬於沒有定義的。不過有時候又可...