Javascript中属性初始化的简写if语句
为了使代码更清晰,我在javascript文件中执行以下操作:Javascript中属性初始化的简写if语句,javascript,validation,jshint,shorthand-if,Javascript,Validation,Jshint,Shorthand If,为了使代码更清晰,我在javascript文件中执行以下操作: var _weight; function getWeight(){ _weight || InitializeWeight(); // do some stuff return _weight; } function InitializeWeight(){ _weight = 3; } JSHint在类似“uweight | | initializewight()”的速记语句中抛出错误:
var _weight;
function getWeight(){
_weight || InitializeWeight();
// do some stuff
return _weight;
}
function InitializeWeight(){
_weight = 3;
}
JSHint在类似“uweight | | initializewight()”的速记语句中抛出错误:
应为赋值或函数调用,而应为表达式
所以我检查它是否未定义,调用这个方法
这真的错了吗?它工作得很好
如何编写此语句而不让JSHint吐在我身上?您可以使用以下选项:
你的意思是把
\u-weight=\u-weight | | initializewight()
?你为什么要在代码中这样写速记。使用这两个额外字符并使用if
语句。让缩略语处理速记。表达式返回结果。运行表达式而不使用其结果是可疑的。如果您看到以下行:1+2
在JS代码中,您的第一个想法是什么?您的代码是有效的Javascript。JSHint对此发出警告,因为在不使用其值的情况下编写布尔表达式看起来很可疑。JSHint不知道调用initializewight()
仅仅是因为它的副作用。大多数时候,如果你写这样的陈述,那是因为你忘了把作业放进去。JSHint和JSLint等工具的目的是帮助您发现这些类型的错误。
/*jshint expr: true */
var _weight;
function getWeight(){
_weight || InitializeWeight();
// do some stuff
return _weight;
}
function InitializeWeight(){
_weight = 3;
}