ish*_*mal 1 javascript php operators
我刚刚在 PHP 中看到了这个语法:
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
Run Code Online (Sandbox Code Playgroud)
为什么我们在 JavaScript 中没有相同的内容?
我厌倦了这样做:
var name = obj['name'] ? obj['name'] : 'GOD';Run Code Online (Sandbox Code Playgroud)
该空合并运算符是最近除了PHP。它是在 PHP 7(2015 年 12 月发布)中引入的,距该功能首次提出已超过 10 年。
在 Javascript 中,逻辑 OR运算符可以用于此目的多年(因为 Javascript 是创建的?!)。
正如文档解释的那样:
逻辑或 (
||)
expr1 || expr2
expr1如果可以转换为true,则返回;否则,返回expr2。
因此,利用布尔值使用时,||返回true如果操作数是true; 如果两者都是false,则返回false。
而不是写作
var name = obj['name'] ? obj['name'] : 'GOD';
Run Code Online (Sandbox Code Playgroud)
你可以使用较短的:
var name = obj['name'] || 'GOD';
Run Code Online (Sandbox Code Playgroud)
||可以多次使用该运算符来创建一个较长的表达式,该表达式的计算结果为第一个非空操作数的值:
var name = obj['name'] || obj['desc'] || 'GOD';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |