2.1 Променливи и болка

Да започнем с най-интересното. JavaScript има променливи, но тези променливи нямат тип. На всяка променлива може да се присвои абсолютно всяка стойност. Изглежда безобидно or дори удобно, докато не се нуждаете от типовете.

Ключовата дума се използва за деклариране на променлива var:

var name;
var name = value;

Примери за работа с променливи в JavaScript:

var a = 10, b = 20;
var c = a*a + b*b;

var s = "Diagonal equals:";
console.log( s + Math.sqrt(c));

Страхотен и ясен code, нали? Може би това е последният път в живота ви, когато виждате красив и разбираем JavaScript code. Запомнете този момент :)

2.2 Въвеждане в JavaScript

Както бе споменато по-горе, променливите в езика JavaScript нямат тип. Но стойностите на променливите имат типове. Ето 5-те най-често срещани типа в JavaScript:

# Тип Пример Описание
1 номер
var pi = 3.14;
Съдържа произволно число
2 низ
var s = "Hello!";
Съдържа низ
3 Булева стойност
var result = true;
Съдържа вярно or невярно
4 масив
var arr = [1, 2, 3, 4, 5];
Съдържа масив от елементи
5 Дата
var current = new Date();
Съдържа дата
6 Обект
var o = {
   width: 100,
   height: 200
}
Съдържа обект, който се състои от двойки ключ, стойност. Нещо подобно на HashMap в Java
7 функция
function sqr(var x) {
   return x*x;
}
функция

Ключовата дума typeof се използва за определяне на типа на обект, например:

var s = "134";
var x = (typeof s == "String") ? s*1 : s;

2.3 Функции и връщания

И разбира се JavaScript има функции. Няма класове, така че функциите могат да бъдат декларирани навсякъде в codeа. Дори и в други функции. Общият формат е:

function name(a, b, c) {
  // function code
   return result;
}

Функцията няма тип. Защо, ако няма контрол на съвместимостта на типа в самия език? Функционалните параметри също може да липсват. Такава е и командата return, която връща стойност.

Когато извиквате функция, можете да подадете произволен брой параметри от всяHowъв тип . Излишните ще бъдат изхвърлени, липсващите ще бъдат равни null.

Примери за функции:

function getValue(name)
{
    return this[name];
}
function setValue(name, value)
{
    this[name] = value;
}

2.4 Масиви в JavaScript

Масивите в JavaScript са много подобни на масивите в Java. Примери:

var array = [1, 2, 3, 4, 5];
array[3] = array[2];
console.log (array[0]);

Те могат да имат стойности от всяHowъв тип, дори други масиви:

var array = [1, "Hello", 3.14, [4, 5] ];
array[3] = array[2];
console.log (array[0]);

В допълнение, масивите също се държат като колекции - можете динамично да добавяте елементи към тях:

var array = [];
array.push(100);
array.push(101);
array.push(102);

array[1] = array[2];
console.log (array[0]);

2.5 Обекти в JavaScript

Обектите в JavaScript са много подобни на HashMap в Java: те съдържат двойки ключ-стойност. Пример:

var obj = {
 name: "Bill Gates",
 age: 67,
 company: "Microsoft"
};

console.log (obj.age);

Полетата на обектите могат да бъдат достъпни по два различни начина:

var x = obj.age;
var x = obj["age"];

Както при HashMap, полетата могат да се създават и изтриват. Пример:

var obj = {};
obj.name = "Bill Gates";
obj.age = 67;
obj.company = "Microsoft";

delete obj.age;  //remove field