Javascript或赋值运算符

我正在查看一些编译的咖啡脚本代码,我注意到以下内容,我认为这很奇怪:

var current, x = 8;
current = this._head || (this._head = x);

运行此之后,当前值为8.通过||的方式判断逻辑运算符工作,我希望它首先评估左侧.在左侧获得“未定义”之后,它移动到右侧,在此处将this._head指定为8.之后它返回true,但这部分不重要吗?我不知道它怎么会回来并影响“当前”变量?任何帮助将不胜感激,谢谢!

最佳答案 || operator返回值,而不是true.也许这有助于说

current = this._head || (this._head = x)

也可以写成

current = this._head ? this._head : (this._head = x);

要么

current = this._head;

if(!current)
    current = this._head = x;
点赞