deepGet函数实现如下:
var deepGet = function(obj, path) {
var length = path.length;
for (var i = 0; i < length; i++) {
if (obj == null) return void 0;
obj = obj[path[i]];
}
return length ? obj : void 0;
};
为什么它不是这样实现的?
var deepGet = function(obj, path) {
var length = path.length;
if (!length)
return void 0;
for (var i = 0; i < length; i++) {
if (obj == null) return void 0;
obj = obj[path[i]];
}
return obj;
};
如果'length'为null或零,则在第一个中运行2个检查(for ,? :),但在第二个中仅运行1个检查(if(!length))
我正在学习JavaScript,想知道为什么吗?