我总是使用以下语法来确保输入变量不是 null 。
function f(input){
if(input === null)
input = "";
...
}
最近,我注意到表达它的时间更短了。
function f(input){
input = input ? input : "";
...
}
但是,我也见过这种语法。
function f(input){
input = input || "";
...
}
请注意,我将严格使用字符串的输入,使其为有效的一个或null(根本不提供)。如果我想将保护扩展到包括其他类型,我应该考虑哪些其他问题?
答案 0 :(得分:3)
首先,请注意它们并非完全相同。 #2和#3具有完全相同的结果:除非input
真实,否则将其设置为空字符串。 #1表示“除非input
为null
,否则请将其设置为空字符串。因此,如果提供了false
,则{1}}将在{1}}中显示为input
但在#2和#3中false
。
如果没有向#1提供任何内容,(即''
,f()
将是input
,因为这是缺少参数时传递的值,而不是{{1其中一个可以解决这个问题:
undefined
否则,是的,它们在功能上是等同的。对我来说,写它的最好方法是
null
这是我喜欢的风格。它可能是你的;它可能不会。但最重要的是, 是一致的 。