Igo*_*rra 3 javascript function default-value
我们知道javascript逻辑运算符|| 如果第一个操作数为true,则生成其第一个操作数的值.否则,它产生第二个操作数的值.
所以在这个例子中:
<script language="javascript">
function test (value){
this.value = value || "(value not given)";
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果该参数值传递给函数作为被视为假像整数0或空字符串""那么THIS.VALUE将被设置为(不给定值),这是不正确正确的(因为确实我们传递的值).
那么问题是哪个应该是设置this.value的最佳方法?
编辑:所有4个第一个答案使用三元运算符"?".我的问题是关于"||" 运营商.
该方案用||的是最方便的来写,但是当一个falsey值(它只能使用undefined,null,0,"",false,NaN)是不是一个合法的值.
如果您想允许特定的假值而不允许其他值,那么您必须编写更具体的代码来处理您的特定情况.例如,如果您想允许空字符串,但不允许null或undefined或其他falsey值,那么您必须编写更具体的代码,如下所示:
function test(value) {
if (value || value === "") {
this.value = value;
} else {
this.value = "(value not given)";
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想排除undefined,可以专门测试它:
function test(value) {
if (value === undefined) {
value = "(value not given)";
}
this.value = value;
}
Run Code Online (Sandbox Code Playgroud)