我希望缩短这段代码。

const variableName = variableName === 0 ? 1 : variableName;


是否可以仅使用一种情况下的变量名来重写它,如下所示:

const variableName = variableName | 1?

最佳答案

从技术上讲,const variableName = variableName | 1无效,因为您不能重新声明已经声明的variableName(在严格模式下,您不能引用它不知道在当前作用域中是否已经声明了它)。

出现了很多的模式是

function test(variableName) {
  variableName = variableName | 1;
  // do something with variableName
}


或者

//not supported in IE, but might be useful if code is passed through a build step,
//or IE support is not important.
function default(variableName = 1) {
  // do something with variableName
}


要么

function constVersion(variableName) {
  const constName = variableName | 1;
  //do something with constName
}


只要注意等效地对待所有variableName的'false-y'值即可。

关于javascript - 是否可以有条件地在JavaScript中分配值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54007042/

10-16 21:20