Сравнение строк возвращает false

Почему это все время возвращает false?

var a = new String("17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site inspection><0.55><1,Mileage").trim();
var b = new String("17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site Inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site Inspection><0.55><1,Mileage").trim();
if (a === b){
   return true;
} else {
   return false;
}

Это одна и та же струна!

Я видел ответы на другие вопросы с помощью метода trim(), но у меня он не работает. Как будто где-то в строках есть скрытые символы, которые я не вижу. Но когда я проверяю длину, они оба имеют длину 255 символов.

Символы строки одинаковы, но эти символы хранятся в разных Строковые объекты, которые не эквивалентны.

Randy Casburn 27.06.2019 23:21

@RandyCasburn Нет, trim() не возвращает объект

Bergi 27.06.2019 23:24

Потому что в строках разные! должен быть какой-то невидимый символ/другая кодировка.

Jonas Wilms 27.06.2019 23:28

@Bergi - я не прокручивал :-/

Randy Casburn 27.06.2019 23:31

Не создавайте строки с помощью конструктора String. В этом нет необходимости.

customcommander 27.06.2019 23:35

Это Inspection против inspection, невидимого символа нет, только заглавная и строчная i.

Johann Philipp Strathausen 28.06.2019 01:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

It's the same string!

Нет, это не так. Посмотрите внимательно:

"17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site inspection><0.55><1,Mileage"
"17-0069,,Alex Libengood,Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC,Site Inspection,,0.55,/mile,0,miles,,1,17-0069><><Alex Libengood><Travel from - Meadors Office - to - 201 Hildebrand Dr, Bonneau SC><Site Inspection><0.55><1,Mileage"
                                                                                                ^                                                                                                                                    ^

Это не скрытые символы, это просто разные случаи i/I. Найдено с

for (let i=0; i<255; i++) if (a[i] != b[i]) console.info(i, a[i], b[i])

Ну, это смущает :0 Я думал, что проверял это раз 15, и до сих пор этого не видел. Тем не менее, этот фрагмент кода является хорошей идеей для проверки. Спасибо @Bergi!

Alex Libengood 28.06.2019 14:57

Другие вопросы по теме