Что такое JavaScript

JavaScript (JS) – сценарный объектно-ориентированный язык программирования. Основная область применения JS – организация интерактивности на веб-сайтах. Но так же быстро набирает обороты и на серверной стороне (node.js как серверный JS, couchdb одна из БД на JS и т.д.). С помощью JS становится возможным получение данных от пользователя, их динамическая обработка и выведение результатов. С помощью JS возможно динамически и асинхронно получить доступ к базе данных, файлам используя встроенную технологию XMLHttpRequest (напр. в jQuery функция ajax). И этот запрос не будет требовать перезагрузки страницы. На данный момент разработано множество библиотек, облегчающих и ускоряющих разработку типовых решений для веб-сайтов на JS (напр. jQuery, AngularJS, ReactJS). Типизация в JS динамическая, т.е. при объявлении переменных тип указывать не нужно. Например:
1
2
3
var pathsCount = 42; // Переменная «pathsCount» имеет тип integer
var color = "yellow"; // Переменная «color» имеет тип string
var drink = { name: "Tea" }; // Переменная «drink» имеет тип object
Свойства объектов доступны через точку:
1
2
3
4
5
var drink = { name: "Tea" };
alert(drink.name); // <-- Tea
 
drink.name = "Coffee";
alert(drink.name); // <-- Coffee
Функции могут определяться так:
1
2
3
4
5
6
7
8
9
10
11
12
// разница при работе с разным объявлением во всплытии функций
// function funcName всплывут. т.е. будут доступны из всей родительской функции
printVal(4); //<-- 4, доступна до объявления
printValue(2); // <-- printValue is not a function. Будет доступна после объявления
 
function printVal (val) {
   document.write(val);
}
 
var printValue = function (val) { //<-- тип printVal - function
   document.write(val);
};
Область видимости ограничена функциями:
1
2
3
4
5
6
7
8
9
var printVal = function (val) {
   if (typeof val === "number") {
      var incremented = val + 1;
   }
 
   alert (incremented); // <-- val + 1, если val число, иначе undefined
 
   return val;
}
Наследование прототипное
1
2
3
4
5
6
7
8
9
10
11
var Fruit = { type: "fruit" };
 
var Apple = function () {
   this.getType = function() { return this.type; };
};
 
Apple.prototype = Fruit;
 
var apple = new Apple();
 
alert(apple.getType()); // <-- fruit
Функции могут передаваться параметром:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function increment (value) {
   return ++value;
};
 
function map (arr, fn) {
   return arr.map(fn); //<-- map - встроенная функция для обхода массива и изменения элементов
   //вызовет функцию fn для каждого элемента в массиве, передавая его как параметр (value)
}
 
var numbers = [ 1, 3, 1 ];
numbers = map(numbers, increment); // <-- переопределяем numbers результатом из map
// В map передаём массив цифр и функцию increment
// С помощью функции [ ].map проходим по всем элементам и изменяет результат (возвращая новое значение)
// результат [ 2, 4, 2 ];
Примитивы неизменяемы (как объекты):
1
2
3
4
5
6
7
var num = 4;
num.prev = 5;
alert(num.prev); // <-- undefined
 
//но переопределяются:
num = 3;
alert(num); // <-- 3
Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru