Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непонятки с true/false (https://javascript.ru/forum/misc/34473-neponyatki-s-true-false.html)

Prazdnic 06.01.2013 14:07

Непонятки с true/false
 
Доброго времени суток!
Сразу простите за нелепый вопрос.
Есть такой кусок кода
num1 = $('#tablo').text();
if (num1){alert('Что-то есть')} else {alert('Ничего нету!')}

Он рабочий. Знаю, что в конструкции if если условие возвращает true - выполняется 1е выражение, если false - 2е.

Так вот, когда я пишу такой код
if (num1 = true){alert('Что-то есть')} else {alert('Ничего нету!')}

Всё время выполняется 1е условие, даже когда должно выполняться 2е.

Объясните пожалуйста, в чем логика

mullih 06.01.2013 14:17

= оператор присваивания

== оператор сравнения

Некоторые операторы JavaScript

но есть еще один момент если бы num1 был бы boolean то выражение num1 == true было бы хоть избыточным но выполнялось логически верно (как вы это ожидаете), а так будет выполняться блок else

monolithed 06.01.2013 16:32

Цитата:

Сообщение от Prazdnic
Так вот, когда я пишу такой код
if (num1 = true){alert('Что-то есть')} else {alert('Ничего нету!')}

Если вы хотите проверить операнды на идентичность, а не на равенство, то используйте оператор ===:
num1 === true
Однако в вашем случае, текст не может содержать булево (логическое) значение по-определению, поэтому будет достаточно этого:
if (num1) {}
Что будет эквивалентно:
if (num1.length) {}

num1.length вернет 0 или другое полжительное число, что равнозначно true или false.

Соответственно, если нужно проверить количество символов в строке, то это можно сделать так:
if (num1.length == 10) {}

Prazdnic 06.01.2013 18:45

monolithed, спасибо огромное за развернутый ответ. Теперь всё понятно.

godofjavascript 08.01.2013 00:23

Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.


Часовой пояс GMT +3, время: 20:14.