2013-10-05 232 views
1

Javascipt:將變量設置爲默認值?JavaScript:將變量設置爲默認值?

我有這樣的代碼:

<script> 
document.write(ab); 
</script> 

ab是一個變量,而是因爲我希望它會被用戶改變其尚未宣佈。我想要的默認結果是x+y(例如as)。但是當用戶輸入任何變量時,結果需要改變。例如:

<script> 
var ab = "The users change code"; 
</script> 

結果將改變的是The users change code

所以,你有我的問題的任何想法。感謝您的幫助。

+3

閱讀JavaScript的任何基本指南,你會在幾分鐘內得出結論。 – adeneo

+3

你能改說你的問題嗎? – karthick

+0

可能的重複http://stackoverflow.com/questions/16696642/setting-a-default-variable-value-in-a-function – JCM

回答

2

只是要學究:

你說:

ab is a variable but it's not declared yet 

SHOM的回答應該能正常運行。

,如果我是一個機器人分析你的問題:

這會雖然你宣佈它:

var ab=undefined; 
    if (typeof ab === 'undefined') 
     var ab= 'x+y'; 
    document.write(ab); 

最安全的方式(如回答你: 「尚未申報」):

if (!('ab' in window)) 
    var ab = 'x+y'; 
    document.write(ab); 
+0

如果你想在你的答案中使用我的答案,也許你可以添加一個評論,而不是...我現在應該寫另一個答案來詳細解釋這個答案嗎? – Shomz

+0

@Shomz我會從我的答案中刪除你的代碼。 –

+0

它仍然存在,但沒關係。我之所以這麼說,是因爲它最近發生了越來越多的事情,我不知道爲什麼人們會採取別人的答案。 – Shomz

1
if (typeof ab == 'undefined') 
    var ab = 'x+y'; 
document.write(ab); 
+0

感謝您的幫助。找到解決方案。 :x –

2

你可以用不同的方法做到這一點。三元是一個簡單的。

var ab=(typeof ab==='undefined'?) x+y : ab; 

這是說,如果AB是不確定的,將其設置爲X + Y,否則讓它在當前,想必用戶設定,值。

可能有更好的方法來處理所有這些。如果您願意,可發佈更多代碼。

+2

你爲什麼使事情複雜化? –

+0

p.s.這些解決方案由於範圍問題而不好。 –

+0

@Royi我同意,這就是爲什麼我要求更多的代碼,並說這整個事情可以做得更乾淨。在我的經驗中設置默認值時,三元式風格相當常見。我喜歡它看起來像一個任務,而不是'如果'。 – JAL