2014-09-21 111 views
0

如果該變量將僅被使用一次,那麼聲明變量有什麼意義? 看看這兩個功能。有區別嗎?哪一個更好,爲什麼?如果將僅使用一次變量,則聲明變量的原因

function showtext(){ 
var elem = document.getElementById("elemid"); 
var txt1 = '<p>Some random text</p>'; 
elem.innerHTML = txt1; 
} 

function showtext(){ 
document.getElementById("elemid").innerHTML = '<p>Some random text</p>'; 
} 
+4

鑑於代碼,沒有意義。但是如果你想確保'elem'不是'null',那麼它對這個變量會更有意義,但是對於'txt1'還是不適用的。 – 2014-09-21 17:19:22

+1

沒有......除非#elemid'不存在,你會得到一個錯誤(你可以測試,或者使用try/catch)。或@cookiemonster說。 – 2014-09-21 17:20:26

+0

第一個選項在教程中可能會更好看,尤其是如果添加一些註釋。 – Christophe 2014-09-21 17:27:53

回答

1

用於在這樣的情況下,使用的變量的唯一原因是更好可讀代碼(散佈在多行,而不是一個單一的過長的一個),特別是如果使用描述您的聲明的變量名稱。

在這個特定的情況下(除了我們正在處理絕對初學者)沒有什麼收穫,因爲getElementById明顯返回elem ent,而txt1意味着什麼。

+0

正如其他人評論的那樣,'getElementById'也可以返回null。 – Christophe 2014-09-21 19:36:08

+0

當然,但代碼並不期望它如此,爲什麼要變量名? :-) – Bergi 2014-09-21 19:39:53

+0

我的評論並非針對代碼片段,而是針對他們的作者;-) – Christophe 2014-09-21 20:43:31

0

JavaScript是函數作用域,因此一旦離開函數,所有變量都會被清理乾淨。

對我來說,爲每個事情聲明單獨的變量對於保持代碼易讀是有意義的。在任何編程語言中使用變量的意義在於命名和描述事物。

所以不是:

function showtext(){ 
    var unimaginativeName1 = document.getElementById("elemid"); 
    var unimaginativeName2 = '<p>Some random text</p>'; 
    unimaginativeName1.innerHTML = unimaginativeName2; 
} 

你可以告訴一個更好的故事:

function showtext(){ 
    var elemDescription = document.getElementById("elemid"); 
    var elemTxt = '<p>Some random text</p>'; 
    elemDescription.innerHTML = elemTxt; 
} 

它會讀比這更好的。

document.getElementById("elemid").innerHTML = '<p>Some random text</p>';