2.1 Переменные и боль
Начнем с самого интересного. В JavaScript есть переменные, но у этих переменных нет типа. Любой переменной можно присвоить абсолютно любое значение. Выглядит безобидно или даже удобно, пока вам не понадобятся типы.
Для объявления переменной используется ключевое слово var:
var name;
var name = value;
Примеры работы с переменными в JavaScript:
var a = 10, b = 20;
var c = a*a + b*b;
var s = "Диагональ равна:";
console.log( s + Math.sqrt(c));
Отличный и понятный код, не правда ли? Возможно, это последний раз в твоей жизни, когда вы видите красивый и понятный JavaScript код. Запомни этот момент :)
2.2 Типизация в JavaScript
Как уже говорилось выше, у переменных в языке JavaScript типа нет. Но вот у значений переменных типы есть. Вот 5 самых распространенных типов в JavaScript:
| # | Тип | Пример | Описание |
|---|---|---|---|
| 1 | Number | |
Содержит любое число |
| 2 | String | |
Содержит строку |
| 3 | Boolean | |
Содержит true или false |
| 4 | Array | |
Содержит массив элементов |
| 5 | Date | |
Содержит дату |
| 6 | Object | |
Содержит объект, который состоит из пар key, value. Чем-то похож на HashMap в Java |
| 7 | Function | |
Функция |
Для определения типа объекта используется ключевое слово typeof, пример:
var s = "134";
var x = (typeof s == "String") ? s*1 : s;
2.3 Функции и return
Ну и конечно же в JavaScript есть функции. Классов там нет, так что объявлять функции можно в любом месте кода. Даже в других функциях. Общий формат имеет вид:
function name(a, b, c) {
// код функции
return result;
}
Типа у функции нет. А зачем, если в самом языке нет контроля совместимости типов? Параметры функции тоже могут отсутствовать. Как и команда return, которая возвращает значение.
При вызове функции можно передавать любое количество параметров любого типа. Лишние отбросится, недостающие будет равны 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]);
Они могут иметь значения любого типа, даже другие массивы:
var array = [1, "Привет", 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; //удаление поля
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ