Web*_*ner 89 javascript ternary-operator
我知道在php 5.3中,而不是使用这个冗余的三元运算符语法:
startingNum = startingNum ? startingNum : 1
Run Code Online (Sandbox Code Playgroud)
...我们可以在适用的情况下为我们的三元运算符使用简写语法:
startingNum = startingNum ?: 1
Run Code Online (Sandbox Code Playgroud)
我知道javascript中的三元运算符:
startingNum = startingNum ? startingNum : 1
Run Code Online (Sandbox Code Playgroud)
......但有速记吗?
多谢你们!
Bra*_*tie 149
var startingNumber = startingNumber || 1;
Run Code Online (Sandbox Code Playgroud)
你正在寻找什么,如果未定义它默认的地方?
var foo = bar || 1; // 1
var bar = 2;
foo = bar || 1; // 2
Run Code Online (Sandbox Code Playgroud)
顺便说一下,这适用于很多场景,包括对象:
var foo = bar || {}; // secure an object is assigned when bar is absent
Run Code Online (Sandbox Code Playgroud)
Ada*_*kis 23
||
将返回它遇到的第一个truthy值,因此可以用作合并运算符,类似于C#的 ??
startingNum = startingNum || 1;
Run Code Online (Sandbox Code Playgroud)
Jos*_*shu 18
添加 ES2020 后:
新的空合并:const difficulty = var?.nest[i]?.prop ?? false
较旧的操作:const difficulty = var.nest[i].prop ? var.nest[i].prop : false
属性之前的问号将首先检查该对象是否存在(如果您不确定它是否存在:就像 API 数据中一样),如果对象丢失,它将返回undefined
检查??
左侧的值是否为null
or undefined
,如果是,则返回右侧提供的值。
Tad*_*eck 11
就在这里:
var startingNum = startingNum || 1;
Run Code Online (Sandbox Code Playgroud)
通常,expr1 || expr2
按以下方式工作(如文档中所述):
返回
expr1
是否可以转换为true
; 否则,返回expr2
.因此,当与Boolean
值一起使用时,如果任一操作数为;则||
返回; 如果两者都是,则返回.true
true
false
false
在大多数现代浏览器中,您现在可以使用:
startingNum ??= 1;
Run Code Online (Sandbox Code Playgroud)
startingNum
仅当它是null
或 时才会改变undefined
。
归档时间: |
|
查看次数: |
46673 次 |
最近记录: |