23.10.2009

Домашка №2

Уважаемые яваскриптеры и яваскриптизерши, держите новую домашку на выходные. На этот раз кодить ничего не нужно. Предлагаю ответить вам на один вопрос. Что вам нравится и не нравится в яваскрипте? Пожалуйста, похвалите и поругайте яваскрипт. Вознесите его к небесам и опустите в низины кала.

7 комментариев:

Dzyanis Kuzmenka комментирует...

Нравится:
- функции, строки и числа объекты;
- объекты можно изменять как угодно и когда угодно.

Не нравится:
- setInterval и setTimeout, больше всего, то как они взаимодействуют с объектами ( setInterval(function(){Object.method.call(Object)} );
- наследование;
- то как js взаимодействует с DOM, скрипт может исполняться быстрее чем объекты (картинки, инпуты и т.п.) изменяют свои свойства.

Все что пока могу сказать, да и в этих пунктах не уверен, так как зеленоват в javascript.

AntonN комментирует...

не нравится, что нельзя сделать так:

for(var i = 0; i < arr.length; i++) {
arr[i].on("click", function() {
alert(i);
}
}

Dzyanis Kuzmenka комментирует...

Думаю тут легко можно обойтись вот таким примером, если я все правильно понял:
for(var i=0; i<arr.length; i++) {
arr[i].onclick = function(index){
return function(){alert(index)};
}(i);
}

Анонимный комментирует...

Главный минус Жаваскрипта - отсутствие (надеюсь, временное!) полноценных интерпретаторов командной строки типа перл, пхп, питон и т.д.
Этот прекрасный скриптовый язык, заключённый в браузерные рамки (считать жава-интерпретатор rhino чем-то удобным и полезным мозг отказывается), к сожалению, не может показать все свои огромные возможности и достоинства.
Не очень удачная работа со строками (всё время путаюсь среди slice(), substr() и substring() ) вполне компенсируется регекспами, не очень удачные циклы for( index in array ) {} - сейчас уже тоже дополнены for each( value in array ), парадигма объектной ориентации без классов - это как раз то, что нужно для скриптового языка (классы в скриптах - зло!), ну а поддержка высокоуровневых элементов типа замыканий, yield, first-class functions и тд - конечно, для гуру может быть и недостаточна, но для скриптов - с лихвой (а для гуру есть питон).
Лично моё мнение - жаваскрипт был бы очень кстати в качестве серверного скриптового языка вместо уродского пхп, который и языком-то назвать нельзя, а просто набор макросов, не подчиняющийся никаким стандартам и даже логике. С другой стороны, один язык на сервере и у клиента - это было бы просто счастьем для вебмастеров и вебпрограммистов.
А конкретные недостатки, которые наличествуют в ЖС внутри браузеров, связаны не с ЖС как языком, а с браузерным АПИ, и это наша извечная плата за обратную совместимость.
Извиняюсь за анонимность.
YKS.

Анонимный комментирует...

to Blogger Dzyanis Kuzyakin
Думаю тут легко можно обойтись таким примером

так у вас будет всего 1 обработчик на событие клика.

Анонимный
Не очень удачная работа со строками
и что в ней неудобного?

парадигма объектной ориентации без классов
попробуйте написать что-то на подобии Google.Карт или Gmail без классов. Я бы посмотрел на вас...

Dzyanis Kuzmenka комментирует...

> так у вас будет всего 1 обработчик на событие клика.

А разве сделать больше чем 1-н обработчик на событие это проблема?
Ищем:
1.) addEvent() от Скотта Эндрю
2.) addLoadEvent() от Саймона Уиллисона
Я вот про эти решения.

P.S. Опять же мне кажется что я не в теме =(

Dzyanis Kuzmenka комментирует...

> Этот прекрасный скриптовый язык, заключённый в браузерные рамки

1.) на нем ещё можно виджеты делать
2.) кто-то из отцов клялся что язык полноценно заработает и на северной части. ждите

> уродского пхп
PHP ещё гадкий утёнок, у него переходный возраст и не какой он б.. не уродский. Язык постоянно улучшают и приходиться поддерживать старые версии. Да и будь он х..й полной, хрен бы он разросся из шаблонизатора до языка! Ой, чтот вырвалось.

> классы в скриптах - зло!
Ололо! Классы - радость и добро! Правда при правильном и рациональном использовании.