Javascript中属性初始化的简写if语句

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()”的速记语句中抛出错误:

为了使代码更清晰,我在javascript文件中执行以下操作:

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;
}