是否可以在 Javascript 中有条件地赋值?
Is it possible to conditionally assign a value in Javascript?
我希望缩短这行代码。
const variableName = variableName === 0 ? 1 : variableName;
是否可以像这样只用一种情况重写它:
const variableName = variableName | 1?
您可以使用以下语法来完成:
const variableName = variableName || 1
请记住,这使用了 javascript 的错误概念,因此如果 variableName 为 0、""、undefined、null 或其他一些值,这将计算为 1。
const variableName = (variableName === 0 && 1) || variableName;
|
是二元或运算符
||
是逻辑或运算符
另外,你不能
const variableName = variableName || 1;
const variableName = 0;
const variableName = variableName || 1;
因为您不能使用 const
对同一个变量声明两次。更应该是:
const variableName = otherVariableName || 1;
我猜你想做的是避免 variableName
被 初始化 0 值(我猜你也不想要 false
或 undefined
)。
const otherVariableName = 0;
const variableName = otherVariableName || 1;
console.log(variableName);
从技术上讲,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' 值。
我希望缩短这行代码。
const variableName = variableName === 0 ? 1 : variableName;
是否可以像这样只用一种情况重写它:
const variableName = variableName | 1?
您可以使用以下语法来完成:
const variableName = variableName || 1
请记住,这使用了 javascript 的错误概念,因此如果 variableName 为 0、""、undefined、null 或其他一些值,这将计算为 1。
const variableName = (variableName === 0 && 1) || variableName;
|
是二元或运算符
||
是逻辑或运算符
另外,你不能
const variableName = variableName || 1;
const variableName = 0;
const variableName = variableName || 1;
因为您不能使用 const
对同一个变量声明两次。更应该是:
const variableName = otherVariableName || 1;
我猜你想做的是避免 variableName
被 初始化 0 值(我猜你也不想要 false
或 undefined
)。
const otherVariableName = 0;
const variableName = otherVariableName || 1;
console.log(variableName);
从技术上讲,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' 值。