Как стать автором
Обновить

Комментарии 50

А что не так с результатом? Чем ноль отличается от пустой строки?
был бы шарп — сослалась бы на тип данных. Но тут этот фокус не пройдет.
Встречный вопрос: почему ноль эквивалентен пустой строке?
ну ноль в памяти хранится как ноль и строка как ноль, разница только в типе данных, а == не подразумевает сравнение типов данных, вот отсюда и true
спасибо. воистину. стало яснее.
javascript:alert(0=='')
из той же оперы
javascript:alert(0==false)

это все же по-моему не верно. хоть и имеет место быть.
в C# вообще вылетит ошибка, что нельзя сравнивать переменные разных типов на равенство (==)
Ruby, как истиный дже дай, выплюнет false, так как 0 — это объект-число, а "" — объект строка. Поэтому не правда, что пустая строка равна нулю.
PHP 5 вроде вернет тру

я все же за то, что 0 != ""
какое отношение имеют убогие сишные функции для работы со строками к интерпретируемому языку не поддерживающему ни однобайтные кодировки, ни однобайтные числа?
а javascript:alert(0==="") false выдает и что?
замечательно.
но все таки почем 0=="" — истина?
Извините за выдирание из контекста, но
Истина не продаётся.
ну, 0 и пустая строка это по-сути очень разные вещи.

Вот за такие приколы не люблю динамическую типизацию…
именно.=]
НЛО прилетело и опубликовало эту надпись здесь
что не отменяет факта того, что 0 и пустая строка — очень разные вещи.
НЛО прилетело и опубликовало эту надпись здесь
Т.е. 0 приводится к строке ""? А к какой строке приводится 1? А как привести 0 к строке «0»?
Пардон за глупые вопросы, я не в курсе, мне интересно, почему так.
НЛО прилетело и опубликовало эту надпись здесь
Т.е. в данном случае оба приводятся к false и проверка проходит?
НЛО прилетело и опубликовало эту надпись здесь
деточка, а ты сама этот учебник открывала? или только на картинки любовалась?
НЛО прилетело и опубликовало эту надпись здесь
это заметно…
Не хамите. Я PHP не знаю и знать не собираюсь, был чисто интерес.
НЛО прилетело и опубликовало эту надпись здесь
3 часа ночи, я пост не перечитывал, ниже есть разговор и про PHP. Javascript, так javascript. Тогда конечно можно и похамить.
НЛО прилетело и опубликовало эту надпись здесь
Я вас никуда не отсылал, я задал один вопрос, на второй вы мне язвительно «посоветовали» читать учебник.
Если вас кто-то куда-то отослал, срывайтесь или на стене, или на том, кто отослал, а не хамите.
НЛО прилетело и опубликовало эту надпись здесь
Вы не отсылали к источнику, вы сказали «Идите уже учебник читать, право!». Если на прямой вопрос, требующий ответа «да/нет» у вас это называется «отсылка к авторитетному источнику», то у меня это называется хамство, да.
Сомневаюсь, что ответить «да» для вас было труднее, а читать учебник для ответа на один этот вопрос — черезчур.
Затем стоило мне ещё указать, в какую ветку мне заходить и какие вопросы задавать.
НЛО прилетело и опубликовало эту надпись здесь
Да. Нет. Только отсылки нет.
Учебник — это авторитетный источник? Вы сказали, что отослали к авторитетному. Любой авторитетен?

Не надо делать вид, что вы не отличаете
> Идите уже читайте учебник
> Прочтите учебник Василия М. Петрова «Javascript для начинающих»
Второе — отсылка. Первое — нет.
НЛО прилетело и опубликовало эту надпись здесь
Очевидно, интонацией.
НЛО прилетело и опубликовало эту надпись здесь
А при чем здесь динамическая типизация?

это проблемы слабой типизации в конкретных языках (php, javascript), а не динамической.
дело тут не в динамической типизации. Все же это баг не баг но самого оператора сравнения.
Вы не путайте тёплое с мягким, как говаривал Бобук.
if(""){
alert("-");
} else {
alert("!");
}

if(0){
alert("-");
} else {
alert("!");
}

Про php такие топики скачут постоянно. Про это немного есть тут.
Ещё например в Java == вообще не рекомендуют использовать — только .equals().
НЛО прилетело и опубликовало эту надпись здесь
Простите, но по ссылке — херня.

Очевидно, авторы не знают, что op_Equality для строки — это все тот же вызов Equals. Но где-то услышали, что «не рекомендуют», и решили у себя тоже написать. И причину не объяснили.

А не рекомендуют, в основном, от того, что можно опечататься и вместо "==" написать "=", в результате чего исказится логика.
Кстати, все приличные анализаторы кода показывают предупреждение «assignment in conditional operator», поэтому если писать не в блокноте, то ничего страшного.
НЛО прилетело и опубликовало эту надпись здесь
спасибо
Не забудьте, что есть еще и "==="
В общем, RTFM. :)
НЛО прилетело и опубликовало эту надпись здесь
Вот кто во всем виноват! +)
Мда…

Во-первых, лично придушил бы дизайнера этого сайта за таблицы без рамок и с вертикальным выравниванием текста по центру, в результате чего нифига не ясно, к чему относится какой кусок текста.

Ну, а во-вторых, с точки зрения здравого смысла не улавливаю, почему
Пустой или состоящий из одних пробелов СтроковойЧисленныйЛитерал преобразует в +0.

По-моему, логичнее было бы возвратить NaN, разве нет?
Зачем NaN, лучше ноль, он счёту не помешает.
тогда и «xyz» тоже к нулю должно приводиться, дабы счёту не мешать ;-)
Потому что NaN однозначно указывает, что на входе какая-то фигня.
А с нулем еще надо дополнительно проверять, действительно ли там ноль, или 10 пробелов.
Автор, есть такое понятие, как weak typing. Слабая типизация.
Было бы не равно, а ошибка, если была бы strong typing.

А есть еще static и dynamic typing, но это уже не относится к делу.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории