3 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
好問題。正如愛因斯坦可能沒有說的那樣,事情應(yīng)盡可能簡(jiǎn)單,并不簡(jiǎn)單。
如果有人無意中嘗試在更廣泛的范圍內(nèi)重新定義myDiv(雖然不是這么好的想法......),后一種方法的優(yōu)點(diǎn)是保持代碼安全,用一些不同的值覆蓋它并繼續(xù)而不注意沖突
這就是為什么這是一個(gè)壞主意的主要原因,而且這已經(jīng)足夠了。全局變量不能安全依賴。它們可以隨時(shí)被任何最終在頁面上運(yùn)行的腳本覆蓋。
除此之外,只需輸入myDiv
就不是“簡(jiǎn)短形式” document.getElementById()
。它是對(duì)全局變量的引用。如果元素不存在,document.getElementById()
將很樂意返回null
,而嘗試訪問不存在的全局變量將引發(fā)引用錯(cuò)誤,因此您需要將對(duì)try / catch塊中的全局引用包裝起來是安全的。
這就是為什么jQuery如此受歡迎的一個(gè)原因:如果你這樣做$("#myDiv").remove()
,并且沒有id的元素,myDiv
就不會(huì)拋出任何錯(cuò)誤 - 代碼只會(huì)默默地做什么,這通常就是你在做DOM操作時(shí)所需要的。
添加回答
舉報(bào)