為什么變量在函數(shù)外定義就得不到結(jié)果?
代碼: ? ?
<script type="text/javascript">?
? ? ? ? var char=document.getElementById("con");
? ? ? ? function texthide()
? ? ? ? {
? ? ? ? ? ? char.style.display="none";
? ? ? ? }
? ? ? ? function textshow()
? ? ? ? {
? ? ? ? ? ? char.style.display="block";
? ? ? ? }
? ??
? ? </script>?
疑問(wèn):因?yàn)閮蓚€(gè)function調(diào)用的對(duì)象都是p標(biāo)簽,所以我就在外面定義了char=document.getElementById("con");但是運(yùn)行的時(shí)候發(fā)現(xiàn),這樣出來(lái)的按鈕沒(méi)有功能,也就是點(diǎn)隱藏、顯示都沒(méi)用,只能點(diǎn)著玩兒= =
而如果把char=document.getElementById("con");分別放到兩個(gè)function的{}里面,功能就能實(shí)現(xiàn)了。
這是為什么呢?
2017-01-13
在函數(shù)外定義 的變量 要是想在函數(shù)內(nèi)部調(diào)用 你在外部定義時(shí)候加個(gè)global 就可以了?
var global char=document.getElementById("con");.....其實(shí)就是局部變量和全局變量的意思一樣,只是形式跟我們平時(shí)看到不一樣而已,實(shí)質(zhì)還是一樣的
2017-12-08
貼出來(lái)的代碼已經(jīng)是全局變量了。
問(wèn)題應(yīng)該出在,你的<script>標(biāo)簽寫(xiě)在head里面或者p標(biāo)簽前面。
原因:
? ? ? ?瀏覽器解析HTML文檔時(shí),從上往下,由于script在前,所以先解析script,當(dāng)解析var?char=document.getElementById("con");時(shí),瀏覽器無(wú)法抓取到id“con”,因?yàn)榇薸d還未解析,所以返回給char變量一個(gè)null值。因此,后續(xù)點(diǎn)擊button也不會(huì)出現(xiàn)任何效果。
2017-01-20
可以不用加global,通過(guò)這個(gè)問(wèn)題可以看出你對(duì)如何定義變量,變量的作用域,什么是全局變量,什么是局部變量不是很清楚。 在函數(shù)外圍的,通過(guò) var 變量名=value; 是全局變量,也就是說(shuō),這個(gè)變量作用于整個(gè)代碼段;在函數(shù)內(nèi)部,var 變量名=value; 這種叫做局部變量,它的作用范圍僅限在函數(shù)內(nèi)部,離開(kāi)函數(shù),則沒(méi)定義。如果你一定要在一個(gè)函數(shù)內(nèi)部定義一個(gè)全局變量,那么則把var 去掉。但是一般我們不會(huì)這么用。你在這里犯的錯(cuò)誤在于,你把在函數(shù)內(nèi)部定義全局變量的方式,放在了函數(shù)外部,程序自然識(shí)別不了。
2017-01-13
在函數(shù)外定義 的變量 要是想在函數(shù)內(nèi)部調(diào)用 你在外部定義時(shí)候加個(gè)global 就可以了?
var global char=document.getElementById("con");