Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2011, 11:52
Аспирант
Отправить личное сообщение для mexoboy Посмотреть профиль Найти все сообщения от mexoboy
 
Регистрация: 15.01.2010
Сообщений: 43

Может кто объяснить =)?
var foo = "0";

if(foo)
   console.log(true);
else
   console.log(false);

if(foo == true) 
   console.log(true);
else
   console.log(false);


Выведет:
true
false

Очень странно, я всегда думал, что в инструкции if, идет приведение условия к булеву типу... Может кто раскроет мне глаза?
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2011, 11:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

mexoboy, в первом условии переменная foo определена - true. Во втором не равна true - false...

Что не понятно?
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2011, 12:05
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
идет приведение условия к булеву типу
А как можно узнать, верно ли условие, если оно не булевого типа?
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2011, 12:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/ecma/part11#a-11.9.3
http://javascript.ru/ecma/part12#a-12.5

Лучшие объяснения.
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2011, 12:14
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Там же не написано, почему так.
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2011, 12:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Matre,
физика отвечает на вопрос "как происходит", философия -- на вопрос "почему происходит". Если вас не устраивает вариант "проектировщики языка так захотели", то можете пофилософствовать самостоятельно.
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2011, 13:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Matre
А как можно узнать, верно ли условие, если оно не булевого типа?
Бивас, тест... (с)
Ответить с цитированием
  #8 (permalink)  
Старый 19.04.2011, 13:35
Аспирант
Отправить личное сообщение для mexoboy Посмотреть профиль Найти все сообщения от mexoboy
 
Регистрация: 15.01.2010
Сообщений: 43

Сообщение от ksa Посмотреть сообщение
mexoboy, в первом условии переменная foo определена - true. Во втором не равна true - false...

Что не понятно?
Не понятен принцип сравнения. Получил сылки от Kolyaj - разобрался.

В php if("0") - выдаст false.

Matre
Я посмотрю ты троль еще тот.

P.s. Kolyaj спасибо за ссылки.

Последний раз редактировалось mexoboy, 19.04.2011 в 13:42.
Ответить с цитированием
  #9 (permalink)  
Старый 19.04.2011, 13:44
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
Я посмотрю ты троль еще тот.
— У тебя есть мозг или нет?
— {foo : 3}

Ты можешь представить себе такой диалог?
Я не могу.
Ответ может быть либо "истина" — true, либо "ложь" — false.
И сарказма никакого не было.
Ответить с цитированием
  #10 (permalink)  
Старый 19.04.2011, 14:01
Аспирант
Отправить личное сообщение для mexoboy Посмотреть профиль Найти все сообщения от mexoboy
 
Регистрация: 15.01.2010
Сообщений: 43

Сообщение от Matre Посмотреть сообщение
— У тебя есть мозг или нет?
— {foo : 3}

Ты можешь представить себе такой диалог?
Я не могу.
Ответ может быть либо "истина" — true, либо "ложь" — false.
И сарказма никакого не было.
Вот смотри - я занимаюсь программированием на php несколько лет, сейчас пишу больше на js. В моем черепе php оставил не стираемый след о том, что "0" - это ложь. Спустя несколько лет я случайно обнаружил, что пишу неправильно - и задал вопрос на эту тему. Вроде полностью привел код и комментарий для вопроса.

Плохой я или хороший программист - мне сложно оценить (судя по занимаемой должности и отзывах вроде неплохой). Но вот судя по комментарию - что зачем ссылки давать, если там нет ответа на вопрос (явно с упором, что автор дибил) - по мне-так кажется тролизмом.

Не все рождаются гениями, каждый учится на своих ошибках и на опыте других. Мне кажется нормальное явление?
Кстати задал данный вопрос всем своим знакомым программистам - ответил только один человек сходу - программист на python
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Может кто нить знает.. rash2x jQuery 2 17.04.2011 08:17
Помогите кто может?! Ingiborn Javascript под браузер 7 04.12.2009 19:06
Подскажите кто может Matvey Общие вопросы Javascript 2 23.07.2009 09:04
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Может кто подсказать как можно сделать submit из левого фрейма в правый maxander Internet Explorer 1 28.11.2008 10:15