2015-07-20 2 views
-1

Я столкнулся с этой проблемой, когда я использую AJAX в javascript.Почему эти две одинаковые строки не равны в JavaScript?

Значение usernameRequest.responseText является «ок», а тип строка, однако доза не равна строке «ok». Пожалуйста, скажите мне, почему, большое спасибо!

http://i.stack.imgur.com/xCKuH.png

http://i.stack.imgur.com/x68DG.png

+6

Просьба представить фрагмент кода, если вы могли бы. –

+3

Вам нужно предоставить дополнительную информацию, возможно, контекст или даже всю процедуру. –

+0

Как вы проверяете равенство? Возможно, попробуйте 'trim()' удалить конечные пробелы, если они есть. 'usernameRequest.responseText.trim() === 'ok'', хотя кажется маловероятным, что ответ будет иметь конечные пробелы. – pushkin

ответ

3

Обычная причина двух строк, которые, как представляется, то же самое, чтобы не совпадать по сравнению с == является то, что один или оба содержит некоторые пробелы или символы новой строки, которые вы не в курсе делая две строки не совсем одинаковыми.

Обычно вы можете отлаживать, посмотрев на:

console.log("'" + usernameRequest.responseText + "'"); 

, который позволит вам увидеть границы строки и увидеть любые ведущие или завершающие пробелы или даже новой строки, чтобы увидеть именно то, что вы есть, и почему это может не соответствует.

Вы также можете просто обрезать лишние пробелы из строки перед сравнением, как это:

if (usernameRequest.responseText.trim() == "ok") 
+0

да! Спасибо. оно работает!!! – sydridgm

Смежные вопросы