久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:124日期: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,可以算是一種簡寫形式,這是由 == 運算符的運算規則決定的:

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

標簽: JavaScript
主站蜘蛛池模板: 礼泉县| 思茅市| 黎平县| 盖州市| 富源县| 康马县| 邹平县| 临桂县| 郓城县| 姜堰市| 南召县| 浦江县| 堆龙德庆县| 永兴县| 尼勒克县| 海原县| 伊春市| 平利县| 磴口县| 武宁县| 师宗县| 涪陵区| 娱乐| 襄垣县| 无锡市| 秭归县| 翁源县| 昌邑市| 阳信县| 新乡县| 金寨县| 郁南县| 石渠县| 高安市| 莱阳市| 平泉县| 崇州市| 乐平市| 九寨沟县| 安国市| 德昌县|