逻辑赋值(Logical Assignment)
程序员文章站
2022-07-16 15:10:07
...
假设您需要先判断是否为空,再为变量分配数值,那么如下代码便展示了这样的基本逻辑:
if (x === null || x == undefined) {
x = y
}
如果您熟悉上面提到的短路计算的工作原理,则可能会使用null-ish合并运算符(coalescing operator),将上述三行代码替换为如下更简洁的版本。
x ?? (x = y) // x = y if x is nullish, else no effect
由上述代码可知,如果x为null-ish的话,我们可以使用null-ish合并运算符的短路功能,来执行第二部分(x = y)。这段代码虽然非常简洁,但是不太容易被阅读或理解。而我们完全可以使用如下代码,根据逻辑上的null-ish分配,来消除此类变通方法。
x ??= y // x = y if x is nullish, else no effect
同样,JavaScript还引入了逻辑AND赋值–&&=、逻辑OR赋值–||=的运算符。这些运算符仅在满足特定条件时被执行赋值,否则并不起作用。
x ||= y // x = y if x is falsy, else no effect
x &&= y // x = y if x is truthy, else no effect
专家建议:如果您有过Ruby的编程经验,那么您会一眼识别出||=和&&=运算符。毕竟Ruby并没有虚假值的概念。
上一篇: ReactNative入门
推荐阅读
-
linux awk 运算符(算术运算符,赋值运算符,关系运算符,逻辑运算符,正则运算符)介
-
ES6基础之解构赋值(destructuring assignment)
-
逻辑卷管理-LVM(Logical Volume Manager)
-
Laravel中批量赋值Mass-Assignment的真正含义详解
-
linux awk 运算符(算术运算符,赋值运算符,关系运算符,逻辑运算符,正则运算符)介
-
Python基础运算符(算数、比较、赋值、逻辑、成员)
-
Java运算符:算数运算符、自增自减、赋值运算符、关系运算符、逻辑运算符、条件运算符、运算符优先级等Tips
-
php的算术、比较、逻辑、递增、字符串和赋值实例讲解
-
大量赋值(Mass assignment)
-
[Python]链式赋值(Chained assignment)