Целый год делал скрипты простые на JS а тут случайно абсолютно увидел ошибку.
<script type="text/javascript">
function go(){
var mm1 = document.getElementById('mm1').value;
var mm2 = document.getElementById('mm2').value;
//if(parseInt(mm1) > parseInt(mm2))
if(mm1 > mm2)
{
alert('error');
}
}
</script>
<form onsubmit="return go(this)">
<input type="text" name="mm1" id="mm1" value="40" />
<input type="text" name="mm2" id="mm2" value="200" />
<input type="submit" value="ok" />
</form>
Скрипт выдает ошибку! (40>200 у него каким то чудом true)
Неужели нужно всегда все делать в parseInt() ?
Спустя 6 минут, 19 секунд (15.03.2012 - 10:25) maximka787 написал(а):
а вот так работает. видимо реально сбылись худшие представления о языке.
var mm1 = Number(document.getElementById('mm1').value);
var mm2 = Number(document.getElementById('mm2').value);
if(mm1 > mm2)
{
alert('error');
}
Спустя 14 минут, 44 секунды (15.03.2012 - 10:40) Visman написал(а):
В первом случае он строки сверял, вероятно

Спустя 3 минуты, 27 секунд (15.03.2012 - 10:43) sharki написал(а):
maximka787
Ну почему же "худшие представления", JS не тривиальный язык вовсе, тебе одновременно дается простота (которая заканчивается вот такими ошибками как у тебя), и гибкость (где ты можешь сравнивать не только числа, но и строки, объекты, функции). Ты программист, ты и должен следить за типами данных и т.п)
PHP и JS расслабил программистов по этому поводу)
Ну почему же "худшие представления", JS не тривиальный язык вовсе, тебе одновременно дается простота (которая заканчивается вот такими ошибками как у тебя), и гибкость (где ты можешь сравнивать не только числа, но и строки, объекты, функции). Ты программист, ты и должен следить за типами данных и т.п)
PHP и JS расслабил программистов по этому поводу)
Спустя 51 минута, 2 секунды (15.03.2012 - 11:34) maximka787 написал(а):
Ага, всем спасибо, понял. На счет типов данных, это все никак не получается безболезненно с php перейти на JS. Там то функции на это есть.
Спустя 4 минуты, 15 секунд (15.03.2012 - 11:38) maximka787 написал(а):
sharki
Нас обучали языку "C" я сразу отказался от мысли быть программистом, потом спустя время перешел на php, был рад. Как пошло ООП, второй раз решил не быть программистом навсегда. Но как-то получилось что 4 года почти и без навыков Объектного программирования. Пока и так хватало знаний на проекты, очень, на мой взгляд, сложных систем.
Нас обучали языку "C" я сразу отказался от мысли быть программистом, потом спустя время перешел на php, был рад. Как пошло ООП, второй раз решил не быть программистом навсегда. Но как-то получилось что 4 года почти и без навыков Объектного программирования. Пока и так хватало знаний на проекты, очень, на мой взгляд, сложных систем.
Спустя 6 часов, 10 минут, 4 секунды (15.03.2012 - 17:48) ApuktaChehov написал(а):
maximka787 - изучая все прелести ООП, уже не представляю, как написать среднее приложение, что бы его можно было легко расширять и редактировать.
Возможно у вас склад ума не тот. Мне достаточно легко дается. Сейчас вот учу Java. Там всё на порядки сложнее с типами данных, областями видимости и т.д. чем в JS.
Возможно у вас склад ума не тот. Мне достаточно легко дается. Сейчас вот учу Java. Там всё на порядки сложнее с типами данных, областями видимости и т.д. чем в JS.
Спустя 52 минуты, 34 секунды (15.03.2012 - 18:41) sharki написал(а):
ApuktaChehov
Советую книгу по Java - "Java для профессионалов" 2 тома
Советую книгу по Java - "Java для профессионалов" 2 тома

Спустя 20 минут, 45 секунд (15.03.2012 - 19:02) vital написал(а):
Цитата |
а вот так работает. видимо реально сбылись худшие представления о языке. |
Язык как раз молодец. Он тут не причем - он делает что и должен.
А вот руки из задницы - и не надо в этом обвинять JS.
Спустя 1 минута, 49 секунд (15.03.2012 - 19:04) vital написал(а):
Цитата |
очень, на мой взгляд, сложных систем. |
Не стоит оправдываться перед собой.
Очевидно, что сам прекрасно понимаешь что делал фигню.
Спустя 1 час, 28 минут, 30 секунд (15.03.2012 - 20:32) ApuktaChehov написал(а):
sharki - спс
Спустя 19 часов, 4 минуты, 34 секунды (16.03.2012 - 15:37) maximka787 написал(а):
vital
Я делаю то, что хочу, просят, нужно, заказывают, и мне достаточно на сегодня тех знаний, которые есть, то, что я не знаю я пытаюсь найти сам, отдать другому кодеру или тут спрашиваю, если мне реально интересно решение задачи, что намного чаще.
На счет рук из-задницы, может и так, ток эти руки умеют доводить проекты до конца, платить своим сотрудникам, развиваться и для доп знаний искать таких как ты.
Я делаю то, что хочу, просят, нужно, заказывают, и мне достаточно на сегодня тех знаний, которые есть, то, что я не знаю я пытаюсь найти сам, отдать другому кодеру или тут спрашиваю, если мне реально интересно решение задачи, что намного чаще.
На счет рук из-задницы, может и так, ток эти руки умеют доводить проекты до конца, платить своим сотрудникам, развиваться и для доп знаний искать таких как ты.
Спустя 24 минуты, 32 секунды (16.03.2012 - 16:01) glock18 написал(а):
vital
с высказываниями, давай поаккуратнее. Эта тема одна из немногих, затрагивающих то, что встречается у всех поголовно. К тому же здесь человек разобрался в проблеме, и лишь спросил почему так.
К тому же первый ответ в теме говорит, что не для всех это прописная истина
с высказываниями, давай поаккуратнее. Эта тема одна из немногих, затрагивающих то, что встречается у всех поголовно. К тому же здесь человек разобрался в проблеме, и лишь спросил почему так.
К тому же первый ответ в теме говорит, что не для всех это прописная истина
Цитата (Visman @ 15.03.2012 - 07:40) |
В первом случае он строки сверял, вероятно |
Visman дал правильный ответ, но, вероятно, он догадался по результату сравнения просто.
Цитата (vital @ 15.03.2012 - 16:02) |
Язык как раз молодец. Он тут не причем - он делает что и должен. А вот руки из задницы - и не надо в этом обвинять JS. |
Не знаю ни одного профессионального программиста, который бы полностью разделил твое мнение касательно того, какой хороший JS. В нем немало мест, сбивающих с толку и мешающих.
Язык неплохой, имеет свои плюсы, но на минусы глаза закрывать просто глупо.
Собственно по вопросу - все атрибуты (то же касается и свойства value) хранятся в нем только как строки (ну, собственно в поле ввода пользователь всегда вводит строку, и иной тип просто нельзя дать вводимому значение), и нельзя никак для элемента изменить это поведение. Это не самая большая неприятность среди всех его недостатков, надо сказать

PS: приведение типа через Number и функция parseInt синонимы
_____________
..Работает - не трогай!