Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 零聚结算子的对立面_Javascript_Typescript_Nullish Coalescing - Fatal编程技术网

Javascript 零聚结算子的对立面

Javascript 零聚结算子的对立面,javascript,typescript,nullish-coalescing,Javascript,Typescript,Nullish Coalescing,Nullish合并运算符允许在变量不是null或未定义的情况下赋值,或者在表达式不是null或未定义的情况下赋值 a = b ?? other 这是对以前使用的|的改进,因为如果b是空字符串或其他伪值,而不是空值,则|也将分配other 然而,有时我们也使用&进行赋值,例如 a = b && func(b) 这里我们只想在b上做func,如果它不是空的,否则指定空的b 当然,&&检查的是错误,而不是无效。是否有一个空版本的&&?据我所知,没有这样的操作符,也没有添加操作符的方

Nullish合并运算符允许在变量不是null或未定义的情况下赋值,或者在表达式不是null或未定义的情况下赋值

a = b ?? other
这是对以前使用的
|
的改进,因为如果b是空字符串或其他伪值,而不是空值,则
|
也将分配other

然而,有时我们也使用
&
进行赋值,例如

a = b && func(b)
这里我们只想在b上做func,如果它不是空的,否则指定空的b


当然,
&&
检查的是错误,而不是无效。是否有一个空版本的
&&

据我所知,没有这样的操作符,也没有添加操作符的方法。相反,您可以依赖:
b==null

a = b == null ? b : func(b)

测试反向零共聚集的工作示例

a = (b ?? false) && other

这不会回答这个问题,因为@str已经回答了这个问题,我只是在这里发布这篇文章,因为我没有足够的代表对@Dalou的答案发表评论,也不希望人们被这个答案绊倒

a = (b ?? false) && other
不是
的对立面,因为如果
b
不是未定义/空值,例如
'
0
,则
a
将取
b
的值。
??
的对立面应将
a
设置为
other
的值,即使
b
'
0

,据我所知,没有这样的操作符(甚至没有建议)。但是您可以使用以下选项:
a=b==null?b:func(b)
。带空值的双等号听起来很恐怖?它是.@f.khantsis
x==null
仅在
x=null
x=undefined
时返回
true
。因此,它与空值合并行为完全匹配,仅对这些值激活。@StackSlave“如果不空值,则对b执行func,否则指定空值b”似乎正是我的代码所做的。如果
b
false
,则此方法被视为未定义或空,因此触发器
func(b)