2013-10-05 297 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