问题描述
网上看到一个实现:Array.prototype.remove = function(from ,to){ var rest = this.slice((to || from) + 1 || this.length); this.length = from < 0 ? this.length + from : from; return this.push.apply(this,rest);};有点混乱了,逻辑操作符能这么用,再查了下,对于||操作符,左边为true则为左边表达式的值,左边为false则为右边表达式的值,这个true或者false的判断依据应该是对象是否非空,那么对于(to || from) + 1 || this.length后面的|| this.length是出于什么目的呢? 问题补充:hudingchen 写道
解决方案
呵呵,你说的对,我看错了,这么看来|| this.length多余了。。。
解决方案二:
当from和to都是null的时候,(to || from) + 1返回NaN,加|| this.length为了处理NaN
时间: 2024-08-02 14:43:42