gpt4 book ai didi

operators - "||="运算符与 CoffeeScript 中的 "?="有何不同?

转载 作者:行者123 更新时间:2023-12-03 20:10:54 29 4
gpt4 key购买 nike

这两者有什么区别?来自Ruby,我习惯了apple ||= walrus仅当 apple 为空时,才将 apple 设置为等于 walrus。这在 JS/CS 中似乎是一样的,尽管 ?= 似乎做同样的事情。让我困惑的是:

apple = 0
walrus = 9
apple ?= walrus // outputs 0
apple ||= walrus // outputs 9

最佳答案

最好的办法是查看生成的 JS。

CoffeeScript :

apple = 0
walrus = 9
apple ?= walrus // outputs 0
apple ||= walrus // outputs 9

JavaScript:
var apple, walrus;
apple = 0;
walrus = 9;
if (apple == null) apple = walrus;
apple || (apple = walrus);

如您所见, ?=明确检查某事是 nullundefined在 JS 中。这与 ||= 非常不同。这仅取决于 apple是一个假值。

进一步扩展 apple ||= walrus等同于 apple = apple || walrus ,所以任何真实的apple值都会使逻辑短路,不会改变apple的值。

关于operators - "||="运算符与 CoffeeScript 中的 "?="有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464891/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com