Maison > Questions et réponses > le corps du texte
J'ai toujours pensé que l'utilisation de == dans le code amènerait les utilisateurs ou les lecteurs du code à envisager des conversions implicites et à augmenter la charge d'utilisation (fondamentalement aucun avantage ? Alors pourquoi la méthode slice de lodash utilise-t-elle == ?).
Le code source est ci-dessous
/**
* 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
天蓬老师2017-07-05 10:43:59
foo == null
是 ==
运算符比较特殊的一种用法,实际上等价于 foo === null || foo === undefined
,可以算是一种简写形式,这是由 ==
Déterminé par les règles de fonctionnement de l'opérateur :