javascript问号?:逻辑语法,防御性编程

时间:2013-11-07 02:18:17

标签: javascript function variables if-statement defensive-programming

我正在尝试使用javascript?:syntax。

重写下面的语句
if(type of someVariable !="undefined"){
     someFunction(someVariable);
}else{}

这是我目前的尝试,它导致语法错误

typeof someVariable != "undefined" ? someFunction(someVariable) : ;

如果有人能说出我遇到了什么问题,我会很感激。欢迎任何关于防御性计划最佳实践的随附提示。

3 个答案:

答案 0 :(得分:5)

?:style(需要:两侧的表达式):

typeof(someVariable) != 'undefined' ? someFunction : null;

忍者式:

someVariable !== undefined && someFunction(someVariable);

[编辑:我无法发誓noop是Javascript中的一个东西,但显然我错了。切换到null]

答案 1 :(得分:0)

看起来应该是这样的。

someVariable != undefined ? someFunction(someVariable):someOtherfunction(someOtherVarialbe);

如果您不想要其他声明并希望它在单行中,您可以这样做:

  if(someVariable != undefined){someFunction(someVariable);}

答案 2 :(得分:0)

即使三元操作控制程序流程,我也只在赋值操作或从函数返回值时使用它。

检查一下: Benefits of using the conditional ?: (ternary) operator