Yev*_*niy 0 javascript operators coffeescript
我试图选择一个可靠的运算符"如果变量未定义或初始化,则声明并初始化".
考虑一个例子(语义不是很重要):
window.test ?= 123
location.origin ||= location.protocol + "//" + location.host
Run Code Online (Sandbox Code Playgroud)
这被转换为以下Javascript:
var _ref;
if ((_ref = window.test) == null) {
window.test = 123;
}
location.origin || (location.origin = location.protocol + "//" + location.host);
Run Code Online (Sandbox Code Playgroud)
哪种方法更好?在我看来,||=运算符更可靠,因为它也说明了"未定义"但是为什么CoffeeScript推广使用?=呢?我错过了什么吗?
在JavaScript中,undefined == null1,所以它确实占了undefined.||=通常是不受欢迎的,因为它会覆盖任何虚假值,即使它不是null或者undefined例如为零或假.
1在JavaScript中,==有时隐式强制值,其中一个是null和undefined.(参见规范中第11.9.3节的第 2和3项).
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |