Почему логическое значение оценивается в одном формате, а не в другом? [Дубликат]

Если вы еще не закрыли свое SQL-соединение, оно должно продолжаться, если оно уже запущено. (Вы должны проверить и проверить это относительно легко.)

-4
задан user2100788 28 February 2013 в 17:35
поделиться

6 ответов

Ваше условие - фактически назначение:

if (document.getElementById("hiddenButton").style.visibility = "hidden") {

Вы должны использовать ==:

if (document.getElementById("hiddenButton").style.visibility == "hidden") {
21
ответ дан Ja͢ck 15 August 2018 в 15:41
поделиться
  • 1
    Конечно, как глупо со мной. Но когда я делаю это, он все еще не работает в первый раз, когда я нажимаю кнопку, ничего не происходит. Но когда я нажимаю его во второй раз, он работает. Когда я использую! = У меня нет этой проблемы, любая идея почему? – user2100788 28 February 2013 в 17:40
  • 2
    Также стоит отметить, что if () выполняется как правдивое, так как присваивание возвращает назначенное значение, которое является тем, что оценивается – Alex K. 28 February 2013 в 17:42
  • 3
    @ user2100788 Возможно, потому что при первом нажатии свойство style.visibility пуст? – Ja͢ck 28 February 2013 в 17:43
  • 4
    Да, если он пуст, он не равен видимым, он не определен. – Malharhak 28 February 2013 в 17:44
  • 5
    @Jack Да, это была проблема, если я использую === и помещаю & quot; visible & quot; вместо else вместо "hidden" оно работает. – user2100788 28 February 2013 в 17:46

Я думаю, ваша проблема в том, что вы путаете оператор присваивания (=) с оператором равенства (== или ===). оператор присваивания левой руки равен тому, что находится в правой части, а оператор равенства (== или ===) фактически проверяет равенство.

5
ответ дан blaedj 15 August 2018 в 15:41
поделиться

Left = Right

Это означает, что «какая бы ни была правая сторона, поместите его как значение для левой стороны».

Все сравнения и другие проверки выполняются с помощью двух символы для ограничения двусмысленности и неправильных назначений переменных, когда вы просто хотели проверить значение.

!= means not equal to
== means equal
=== means equal and same object/datatype
= means "Assign the right side (Or what it evaluates to) to the variable on the left
2
ответ дан Gyhth 15 August 2018 в 15:41
поделиться

Это потому, что простой «=» не предназначен для компаса. Вместо этого используйте «==».

3
ответ дан JoDev 15 August 2018 в 15:41
поделиться

JS Операторы сравнения

==      is equal to 
===     is exactly equal to (value and type)
!=      is not equal

Например:

var x = 1;  //define and assigned and now x equal to 1
x = 3;        //now x equal to 3

if( x == 4) {
    //you won't see this alert
    alert('Hello, x is 4 now');
} else {
    //you will see this alert
    alert('Hello, x hasn not been changed and it is still ' + x.toString());
}
6
ответ дан Kaf 15 August 2018 в 15:41
поделиться
  • 1
    например, '1'==1 - true , но '1'===1 - false (сравнивается число и строка, оба имеют одинаковое значение, но разные типы). – Brad Christie 28 February 2013 в 17:41
  • 2
    @BradChristie: точно! и спасибо за удаление одинарных кавычек. – Kaf 28 February 2013 в 17:44

= является операцией присваивания.

!= является оператором неравенства.

== является оператором равенства.

Я предполагаю, что вам нужен оператор ==. Поэтому замените свой код на:

if (document.getElementById("hiddenButton").style.visibility == "hidden") {
10
ответ дан Praveen Kumar Purushothaman 15 August 2018 в 15:41
поделиться
  • 1
    Серьезно? Я не вижу, как сарказм помогает пользователю решить его проблему. Просто мое мнение, но он, вероятно, не задал бы вопрос, не был ли он серьезным ... – Zak 28 February 2013 в 17:39
  • 2
    @Zak Согласен. Удалена часть сарказма. :) – Praveen Kumar Purushothaman 28 February 2013 в 17:41
  • 3
    & Quot;! = & Quot; не является не оператором, это оператор неравенства. Большая разница :) – Ja͢ck 1 March 2013 в 02:26
  • 4
    @Jack Обновлено. Благодарим за уведомление. :) Было слишком двоично! :П – Praveen Kumar Purushothaman 1 March 2013 в 07:28
Другие вопросы по тегам:

Похожие вопросы: