国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - lodash源碼, slice方法中為何使用==的疑問

瀏覽:102日期:2023-04-02 10:30:17

問題描述

之前一直認為代碼中使用==會讓使用或閱讀代碼者考慮隱式轉換,增加使用負擔(基本沒有好處?),那么lodash的slice方法是出于什么考慮使用==的呢?下面是源碼

/** * Creates a slice of `array` from `start` up to, but not including, `end`. * * **Note:** This method is used instead of * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are * returned. * * @since 3.0.0 * @category Array * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */function slice(array, start, end) { let length = array == null ? 0 : array.length if (!length) { return [] } start = start == null ? 0 : start end = end === undefined ? length : end if (start < 0) { start = -start > length ? 0 : (length + start) } end = end > length ? length : end if (end < 0) { end += length } length = start > end ? 0 : ((end - start) >>> 0) start >>>= 0 let index = -1 const result = new Array(length) while (++index < length) { result[index] = array[index + start] } return result}export default slice

問題解答

回答1:

foo == null 是 == 運算符比較特殊的一種用法,實際上等價于 foo === null || foo === undefined,可以算是一種簡寫形式,這是由 == 運算符的運算規(guī)則決定的:

javascript - lodash源碼, slice方法中為何使用==的疑問

標簽: JavaScript
主站蜘蛛池模板: 衡阳县| 郯城县| 江源县| 娱乐| 邢台县| 盘山县| 江北区| 外汇| 鲁山县| 吉林省| 岐山县| 三河市| 达孜县| 安阳县| 固始县| 大丰市| 梅州市| 满洲里市| 盐源县| 古交市| 买车| 栾城县| 泽州县| 鄂伦春自治旗| 青岛市| 淮滨县| 永城市| 泰顺县| 东乌珠穆沁旗| 华亭县| 岚皋县| 和静县| 托里县| 郑州市| 西吉县| 柏乡县| 武安市| 东莞市| 巴彦淖尔市| 台东市| 云霄县|