LINUX.ORG.RU

javascript странная проверка условий


0

1

На JavaScript'e пишу редко. Случайно наткнулся на такую фишку. Хотелось бы понять, почему так.

Есть функция:

function toggleEl (el_id, state) {
	if (state) {
		document.getElementById(el_id).style.display = '';
	} else {
		document.getElementById(el_id).style.display = 'none';
	}
}

Если вторым параметром передавать true или false, то все работает как положено. Но если 1 или 0, то всегда выполняется первая ветка.

При этом alert (0 == false) дает true, то есть, казалось бы, все должно работать корректно.

Не сказать, что мне это сильно мешает, просто несколько неожиданно...

★★

Ответ на: комментарий от staseg

Хм, а вот это мне в голову и не пришло.... Похоже, что так и есть.

Все-таки, языки без явной типизации - не всегда хорошо.

Тогда тема закрыта, все понятно. Спасибо!

solovey ★★
() автор топика
Ответ на: комментарий от solovey

Все-таки, языки без явной типизации - не всегда хорошо.

как видишь — даже если компилятор языка (без статической типизации) не заорал тебе о том что мол какого фига ты забыл конвертировать строку в число — сёравно ты смог понять что что-то работает не так как ты ожидал..

..так-что особо ничего плохого не совершилось.

зато еслибы Javascript (или любой другой скрипт, например Ruby или Python) оказался бы со статической типизацией — это затормозилобы очень много минут разработки...

....людям приходилось бы вместо того чтобы просто уже начать писать функциональный код — сидеть и выдумывать какието интерфейсы и/или иерархии классов..

это был бы ужасный кошмар

Тогда тема закрыта, все понятно. Спасибо!

такчто тема далеко не закрыта. обсудить есть что :-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.