RubyDev учебник по клиентскому JavaScript
Почему именно по клиентскому? — Во-первых меня, по крайней мере пока, не интересует серверный javascript и не интересует node.js и т.п. Во-вторых, клиентский яваскрипт все-таки более популярен и конкретно он меня наибольшим образом интересует. В любом случае, если меня заинтересует серверный JavaScript и работа с Node.js, то будет выпущен соответствующий новый, отдельный цикл, уже по самой технологии, а не по самому JavaScript, поскольку отличия не существенны, это по прожнему тот же javaScript, только выполняющий работу иного характера.
Данный учебник не будет описывать работу со строками или массивами и не будет преднамеренно знакомить вас с библиотекой предопределенных «классов» и методов. Все это так потому, что целью данного учебника не является его становление справочником, но предоставление вам понимания того, что такое JavaScript, его концепций и стиля написания программ.
В этом цикле статей будет также расмотрен фреймворк jQuery, который позволяет разработчику сконцентрироваться на написании логики не отвлекаясь на кроссбраузерность и так далее. Другими словами jQuery берет на себя весь рутинный труд.
Не смотря на то, что JavaScript является объектно-ориентированным (ОО) языком программирования, для него более родственной является концепция функций.
Любая функция в JavaScript — это экземпляр класса Function. Честно признаться, в JavaScript не того, что принято называть классами. Работу классов в JavaScript выполняют функции — конструкторы (или просто конструкторы), которые создают объекты с определенными предопределенными свойствами. Ниже приведен пример использования конструктора для создания объекта типа Array:
myArray = new Array(1,2,3,4,5); //1,2,3,4,5
myArray; //1,2,3,4,5
typeof myArray; //object
myArray.constructor; //возвращает конструктор Array
Пояснения:
1. Для создания новых объектов конструкторы вызываются через выражение new. Так же как и классы, функции конструкторы могут свои собственные свойства.
2. Оператор typeof используется для получения типа объекта. К сожалению он годится только для предопределенных типов: строки, числа, булевы значения. Все остальные объекты, например массивы и пользовательские объекты будут иметь тип object, что не о чем не говорит.
3. Метод constructor возвращает функцию-конструктор объекта — приемника.
Обявить функцию можно при помощи двух способов: выражения function и конструктора Function, ниже приведены примеры обоих:
function myFunction(){
alert("Hello!");
}
myFunction(); //Hello
var myFunction = new Function("alert(\"Bye-bye!\");");
myFunction(); //Bye-bye!
Пояснения:
1. Как видите, имя функции — это всего-лишь переменная, которая ссылается на объект функции в памяти компьютера.
2. Создание функций с использованием конструкторов — это моветон, посколько данный метод сильно сничает читабельность и использует eval для преобразования строки в код.
Read the rest of this entry »