我正在查看一些编译的咖啡脚本代码,我注意到以下内容,我认为这很奇怪:
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;