短音if/else语句Javascript

Shorthand if/else statement Javascript

本文关键字:语句 Javascript else if 短音      更新时间:2023-09-26

我想知道是否有一种更短的方法来写这个:

var x = 1;
if(y != undefined) x = y;

我最初尝试了x = y || 1,但没有成功。正确的方法是什么?

var x = y !== undefined ? y : 1;

请注意,var x = y || 1;会为任何y错误的情况分配1(例如false0""),这可能是它对您"不起作用"的原因。此外,如果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"是一个参数,如果它是某个null或未定义的值,则该参数将被指定为"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