При проверке, является ли массив пустым, я должен использовать array.length <= 0 или array.length === 0? - PullRequest
0 голосов
/ 10 марта 2020

Я привык проверять пустые массивы с помощью array.length <= 0. Конечно, массив никогда не должен иметь длину меньше 0. Это привычка, которую я разработал, чтобы убедиться, что моя программа запускает «на случай, если случится что-то странное» . Есть ли причина не использовать оператор <= и использовать вместо него === 0?

Ответы [ 2 ]

4 голосов
/ 10 марта 2020

Если list является массивом, то нет, нет никаких шансов, что length будет чем-то отличным от целого числа. Из спецификации :

Каждый объект Array имеет ненастраиваемое свойство «length», значение которого всегда является неотрицательным целым числом меньше 2 ** 32

Учитывая объект массива, вы даже не можете сознательно запутать вещи, изменив length на нечто, отличное от допустимой длины; будет выдана ошибка:

const arr = [];
Object.defineProperty(arr, 'length', { value: -5 })
2 голосов
/ 10 марта 2020

На мой взгляд, нет причин проверять отрицательное значение длины list.length <= 0. , поскольку в спецификации для массивов сказано: :

Каждый объект Array имеет свойство длины, значение которого всегда неотрицательное целое число меньше 2 32 .

Так что вполне возможно проверить list.length === 0

...