我通过阅读一些代码来学习Javascript,但这个功能真的让我很困惑。
hv:
function(i) {
var _this = this;
return isArr(_this) ? _this.indexOf(i) > -1 : _this[i] !== void 0;
}
此功能已添加到Object.prototype
我不会在三元表达结束时得到void 0
。有人可以向我解释一下吗?
感谢。
答案 0 :(得分:5)
void运算符通常仅用于获取未定义的原始值, 通常使用“void(0)”(相当于“void 0”)。在这些情况下, 可以使用全局变量undefined(假设它尚未分配 到非默认值)。
在这种情况下,可以使用全局变量undefined代替: 即:
_this[i] !== undefined;
答案 1 :(得分:2)
void 0
是一种让undefined
无误的方法。某些浏览器允许覆盖undefined
变量,但您无法覆盖void