Я прочитал много хорошего материала по правде и ложности (http://adripofjavascript.com/blog/drips/truthy-and-falsy-values-in-javascript.html) и, в частности, различия между «==» и «===» в JavaScript. Лучшие объяснения и ресурсы в основном из этого Stack Overflow Вопрос:Сохранение логических значений в скрытых полях для обработки формы
Which equals operator (== vs ===) should be used in JavaScript comparisons?
Я работаю на форме и нужно сохранить логическое значение в скрытом поле со следующим синтаксисом JQuery:
$('[name="fieldName"]').val(true);
Поэтому я вставляю логическое значение, true или false, в скрытое поле. Во время обработки на экране, я хватаю это значение поля в ряде if-заявления с помощью следующего кода, и сравнить его следующим образом:
$('[name="fieldName"]').val() === "true"
Обратите внимание, как я использую оператор === для сравнения с строковое значение «true».
Мой вопрос; если только Object в JavaScript имеет ссылку на тип, тогда boolean должен быть типом значения. Поэтому я предполагаю, что, поскольку сравнение значений с оператором === сравнивает не только содержимое, но и тип, что вышеприведенное выражение должно возвращать false? Однако в моем коде он возвращает true - может ли кто-нибудь объяснить, почему это так?
Этот код ранее использовался == для сравнения, но чтобы избежать ложных рисков, я реализую === везде, где это возможно. Может ли это быть чем-то связанным с jQuery, преобразующим ценности для меня?
Что такое $ J в сравнении кода? –
опечатка - удален! – coderwurst