Объявление переменных. Типы данных. undefined Объявление переменных. Типы данных.

Объявление переменных. Типы данных.

Open in new window

Переменные. Типы данных

Объявление переменных.

Переменные объявляются при помощи 3-х служебных слов const let и var.

Необходимо помнить - никогда не определяйте переменные без этих служебных слов.

let и const - нововведение в Javascript в отличие от var.

Традиционное объявление.

var a = 10;

const - предотвращают переопределение переменной.

При попытке переопределить возникает исключение.

Cannot assign to ‘age’ because it is a constant.

let во многом похож на var и помогает избежать некоторых неприятностей.

var - это определение переменных в пространстве видимости функций, однако не в блоковых конструкциях (как в других языках).

var foo = 123;
if (true) {
    var foo = 456;
}

console.log(foo);

В этом примере переменная foo одна и таже внутри блоковой конструкции if и за ее пределами. Она может быть изолирована только внутри функции.

function f() {
    var message = "Hello, world!";

    return message;
}

console.log(foo); // 456

Поэтому ввели новое слово let, которое позволяет изолировать область видимости внутри блоковых операторов условий и циклов.

В примере ниже показано как это работает.

let foo = 123;
if (true) {
    let foo = 456;

}

console.log(foo); // 123

Пример с функцией.

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // одна и та же переменная
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // разные переменные
    console.log(x);  // 2
  }
  console.log(x);  // 1
}

Логический тип

let isDone: boolean = false;

Числа

let decimal: number = 6;

Строки

let color: string = "blue";

Форматирование строк (шаблонные строки).

let name: string = 'Dima';
let age: number = 42;
let sentence: string = `Hello, my name is ${ name } I am ${age}.

Списки

let list: number[] = [1, 2, 3];

Определять тип можно дженериками.

let list: Array<number> = [1, 2, 3];

Кортежи

Это списки с фиксированным числом элементов.

// определяем кортеж
let x: [string, number];
// инициализируем
x = ["hello", 10]; // OK
// определяем не корректно
x = [10, "hello"]; // Ошибка

Тип Any

Определяет любой тип и служит для совместимости с программами, написанными в ранних версиях js.

let notSure: any = 4;

Void

Используется для указания того, что функция ничего не возвращает.

function warnUser(): void {
    console.log("This is my warning message");
}

Обьекты.

Аналог словаря Python.

Конструкция пар ключ-значение.

let obj = {
    name: 'Dima'
    age: 42
}

Other topics