"In" Аномалия оператора: почему тест возвращает true для "0", если массив не содержит "0"
The "in" Оператор " в JavaScript позволяет проверить, существует ли свойство в объекте или элемент в массиве. При проверке элемента в массиве можно ожидать, что оператор «in» вернет true только в том случае, если массив содержит элемент с таким точным значением. Однако в случае проверки на «0» в массиве оператор «in», похоже, ведет себя неожиданно.
Рассмотрим следующий пример:
var x = [1, 2];
0 in x;
Это возвращает true, даже если массив x не содержит значения «0». Причина такого, казалось бы, парадоксального поведения кроется в природе оператора «in».
Понимание оператора «in»
Оператор «in» проверяет, свойство или элемент существует в объекте или массиве. Однако важно подчеркнуть, что оператор проверяет наличие свойства или элемента, а не обязательно наличие определенного значения.
В случае массивов оператор «in» проверяет, соответствует ли конкретный индекс существует внутри массива, а не в том случае, если по этому индексу присутствует элемент с определенным значением. Это означает, что проверка на «0» в массиве проверяет, существует ли элемент с индексом 0, независимо от значения этого элемента.
Применение к примеру
В нашем примере массива x оператор «0» проверяет, существует ли элемент с индексом 0. Поскольку в JavaScript массивы имеют нулевой индекс, индекс 0 является допустимым индексом для массива с двумя элементами. Таким образом, оператор «in» возвращает значение true, даже если в массиве нет элемента со значением «0». «Поведение оператора может сбить с толку, если кто-то неправильно понимает его цель. Он проверяет не наличие определенного значения, а скорее наличие элемента или свойства по определенному индексу или ключу. Это может привести к неожиданным результатам при проверке таких значений, как «0», которые часто имеют особое значение в качестве индексных или ключевых позиций.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3