Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2013, 14:07
Интересующийся
Отправить личное сообщение для Prazdnic Посмотреть профиль Найти все сообщения от Prazdnic
 
Регистрация: 15.09.2012
Сообщений: 12

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

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

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

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

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

Последний раз редактировалось monolithed, 06.01.2013 в 16:25.
Ответить с цитированием
  #2 (permalink)  
Старый 06.01.2013, 14:17
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

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

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

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

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

Последний раз редактировалось mullih, 06.01.2013 в 14:25.
Ответить с цитированием
  #3 (permalink)  
Старый 06.01.2013, 16:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

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

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

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

Последний раз редактировалось monolithed, 06.01.2013 в 16:43.
Ответить с цитированием
  #4 (permalink)  
Старый 06.01.2013, 18:45
Интересующийся
Отправить личное сообщение для Prazdnic Посмотреть профиль Найти все сообщения от Prazdnic
 
Регистрация: 15.09.2012
Сообщений: 12

monolithed, спасибо огромное за развернутый ответ. Теперь всё понятно.
Ответить с цитированием
  #5 (permalink)  
Старый 08.01.2013, 00:23
Профессор
Посмотреть профиль Найти все сообщения от godofjavascript
 
Регистрация: 11.12.2012
Сообщений: 265

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

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

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

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

Задавайте конкретные вопросы по ходу дела.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ещё вопросы по JavaScript: undefined, проверка true/false, ... Почемучкин Общие вопросы Javascript 6 08.09.2012 22:30
toggle true/false на mototools-е nemoon Общие вопросы Javascript 1 14.07.2011 15:26
непонятки с ФФ и гугл розовый слоник Общие вопросы Javascript 2 06.06.2011 14:10
непонятки с циклом Yellow79 Events/DOM/Window 2 11.05.2011 16:29
Непонятки с регэкспом... mexoboy Общие вопросы Javascript 3 09.03.2010 18:09