понедельник, 29 сентября 2008 г.

JavaScript. Начинаю разбираться

В знаменитой Lama book (Рэндалл Шварц, Том Кристиансен "Изучаем Perl") написано, что программировать на Perl без ключика "-w" (разрешить предупреждающие сообщения) будет только сумашедший. Также настоятельно рекомендуется использовать прагму "use strict" для запрещения использования "небезопасных" конструкций. Так вот, в JavaScript ничего этого нет! Программирование превращается в увлекательное балансирование на троссе над бездной ошибок. Тут нужно внутреннее чутье, которое наверное приходит с опытом, для быстрого написания работающих программ.

Пока не понял для чего нужно ключевое слово var. Неописанные переменные работают так же хорошо. Опечатка в имени переменной не приводит к дурацким сообщениям интерпретатора.

Очень изящно реализовано единство противоположностей для элементарных типов: строка, число или булево значение могут быть как литералом, так и объектом, причем в некоторых случаях их поведение в разных ипостасях различно (например eval() не работает со строковыми объектами). С другой стороны литералы работают как объекты (кто бы мог подумать!), так что 'Test'.length - вполне законная конструкция. Это добавляет в жизнь остроту ощущений.

Неявное приведение типов доведено до совершенства. Даже пришлось вводить дополнительно два оператора сравнения.

Имеется три различных способа создания (или описания?) функций. Класс!

Язык имеет множество способов для написания самомодифицирующегося кода от примитивного eval() до функций, изменяющих свое поведение от вызова к вызову. Чего уж говорить об изменении методов объектов, добавлении или удалении свойств и методов на лету вплоть до базового объекта Object. Пожалуй JavaScript наиболее подходящий инструмент для написания программ имитации поведения человека.

В общем язык мне понемногу начинает нравиться. С ним не соскучишься...

Комментариев нет:

Отправить комментарий