[英]Shorthand if/else statement Javascript
我想知道是否有更短的写法:
var x = 1;
if(y != undefined) x = y;
我最初尝试x = y || 1
x = y || 1
,但这没有用。 解决这个问题的正确方法是什么?
var x = y !== undefined ? y : 1;
注意var x = y || 1;
var x = y || 1;
对于任何y
为false
情况(例如false
、 0
、 ""
),都会分配1
,这可能就是它“对您不起作用”的原因。 此外,如果y
是一个全局变量,如果它真的没有定义,你可能会遇到错误,除非你以window.y
访问它。
正如 vol7ron 在评论中建议的那样,您还可以使用typeof
来避免将全局变量引用为window.<name>
:
var x = typeof y != "undefined" ? y : 1;
另一种写法
bePlanVar = !!((bePlanVar == false));
// is equivalent to
bePlanVar = (bePlanVar == false) ? true : false;
// and
if (bePlanVar == false) {
bePlanVar = true;
} else {
bePlanVar = false;
}
y = (y != undefined) ? y : x;
括号不是必需的,我只是添加它们,因为我认为这样更容易阅读。
另一种方法是使用短路:
x = (typeof y !== 'undefined') && y || 1
虽然我自己认为三元更具可读性。
这是一种有效的方法,但实际上可能不是任何语言的最佳实践:
var x,y;
x='something';
y=1;
undefined === y || (x = y);
或者
undefined !== y && (x = y);
似乎您将“y”默认为 1:箭头函数在 2020 年很有用:
let x = (y = 1) => //insert operation with y here
让'x' 是一个函数,其中'y' 是一个参数,如果它是一些空值或未定义的值,它将被分配一个默认值'1',然后用y 返回一些操作。
你可以试试 if/else 这个速记方法:
// Syntax
if condition || else condition
// Example
let oldStr = "";
let newStr = oldStr || "Updated Value";
console.log(newStr); // Updated Value
// Example 2
let num1 = 2;
let num2 = num1 || 3;
console.log(num2); // 2 cause num1 is a truthy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.