第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么變量在函數(shù)外定義就得不到結(jié)果?

代碼: ? ?

<script type="text/javascript">?

? ? ? ? var char=document.getElementById("con");

? ? ? ? function texthide()

? ? ? ? {

? ? ? ? ? ? char.style.display="none";

? ? ? ? }

? ? ? ? function textshow()

? ? ? ? {

? ? ? ? ? ? char.style.display="block";

? ? ? ? }

? ??

? ? </script>?

疑問:因為兩個function調(diào)用的對象都是p標簽,所以我就在外面定義了char=document.getElementById("con");但是運行的時候發(fā)現(xiàn),這樣出來的按鈕沒有功能,也就是點隱藏、顯示都沒用,只能點著玩兒= =

而如果把char=document.getElementById("con");分別放到兩個function的{}里面,功能就能實現(xiàn)了。

這是為什么呢?

正在回答

4 回答

在函數(shù)外定義 的變量 要是想在函數(shù)內(nèi)部調(diào)用 你在外部定義時候加個global 就可以了?

var global char=document.getElementById("con");.....其實就是局部變量和全局變量的意思一樣,只是形式跟我們平時看到不一樣而已,實質(zhì)還是一樣的


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

TicoM 提問者

非常感謝!
2017-01-13 回復 有任何疑惑可以回復我~

貼出來的代碼已經(jīng)是全局變量了。

問題應(yīng)該出在,你的<script>標簽寫在head里面或者p標簽前面。

原因:

? ? ? ?瀏覽器解析HTML文檔時,從上往下,由于script在前,所以先解析script,當解析var?char=document.getElementById("con");時,瀏覽器無法抓取到id“con”,因為此id還未解析,所以返回給char變量一個null值。因此,后續(xù)點擊button也不會出現(xiàn)任何效果。

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

可以不用加global,通過這個問題可以看出你對如何定義變量,變量的作用域,什么是全局變量,什么是局部變量不是很清楚。 在函數(shù)外圍的,通過 var 變量名=value; 是全局變量,也就是說,這個變量作用于整個代碼段;在函數(shù)內(nèi)部,var 變量名=value; 這種叫做局部變量,它的作用范圍僅限在函數(shù)內(nèi)部,離開函數(shù),則沒定義。如果你一定要在一個函數(shù)內(nèi)部定義一個全局變量,那么則把var 去掉。但是一般我們不會這么用。你在這里犯的錯誤在于,你把在函數(shù)內(nèi)部定義全局變量的方式,放在了函數(shù)外部,程序自然識別不了。

2 回復 有任何疑惑可以回復我~

在函數(shù)外定義 的變量 要是想在函數(shù)內(nèi)部調(diào)用 你在外部定義時候加個global 就可以了?

var global char=document.getElementById("con");

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

舉報

0/150
提交
取消

為什么變量在函數(shù)外定義就得不到結(jié)果?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號