我希望缩短这段代码。
const variableName = variableName === 0 ? 1 : variableName;
是否可以仅使用一种情况下的变量名来重写它:
const variableName = variableName | 1?
答案 0 :(得分:1)
const variableName = (variableName === 0 && 1) || variableName;
答案 1 :(得分:1)
|
是二进制OR运算符
||
是逻辑或运算符
而且,你不能做
const variableName = variableName || 1;
const variableName = 0;
const variableName = variableName || 1;
因为不能使用const
两次声明相同的变量。可能更多:
const variableName = otherVariableName || 1;
我想您想做的是避免将variableName
初始化为 (值为0)(我想您不希望{{1} }或false
。
undefined
答案 2 :(得分: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'值。
答案 3 :(得分:0)
您可以使用以下语法进行操作:
const variableName = variableName || 1
请记住,这使用了javascript的falsey概念,因此,如果variableName为0,“”,未定义,null或其他一些值,则其评估结果为1。