Перейти к содержанию

Переменные и константы

Для хранения данных в программе в TypeScript, как и во многих языках программирования используются переменные.

Для определения переменных, как в JavaScript, можно использовать ключевое слово var:

var z // переменная z

Другой способ определения переменной применяет ключевое слово let, которое было добавлено в JavaScript в стандарте ES 2015:

let z

Применение let является более предпочтительным, поскольку позволяет избежать ряд проблем, связанных с объявлением переменных. В частности, с помощью var мы можем определить два и более раз переменную с одним и тем же именем:

var x = 'hello'
console.log(x)
var x = 'work'
console.log(x)

Если программа большая, то мы можем не уследить за тем, что такая переменная уже объявлена, что является источником потенциальных ошибок. Подобную проблему позволяет решить let:

let x = 'hello'
console.log(x)
let x = 'work' // здесь будет ошибка, так как переменная x уже объявлена
console.log(x)

Хотя var по прежнему можно использовать.

Определив переменную, мы можем установить ее значение и в процессе работы программы поменять его на другое:

let z = 6
z = 8

Кроме переменных в TypeScript имеются константы - для них можно установить значение только один раз. И далее процессе работы программы мы уже не сможем изменить это значение. Для определение констант используется ключевое слово const:

const z = 6
z = 8 // здесь ошибка - нельзя изменить значение константы z

Можно следующим образом суммировать различия между var и let/const:

var

Доступна в любой части функции, в которой она определена.

function print() {
  if (1) {
    var x = 94
  }
  console.log(x) // норм
}

Можно использовать в функции перед определением.

function print() {
  console.log(x) // undefined, но норм
  var x = 76
}

В одной и той же функции можно несколько раз определить переменную с одним и тем же именем.

function print() {
  var x = 72
  console.log(x) // 72
  var x = 24 // норм
  console.log(x) // 24
}

let/const

Доступна только в рамках блока, в котором она определена

function print() {
  if (1) {
    let x = 94
  }
  console.log(x) // ! Ошибка
}

Можно использовать только после определения.

function print() {
  console.log(x) // ! Ошибка
  let x = 76
}

В одной и той же функции можно только один раз определить переменную с одним и тем же именем.

function print() {
  let x = 72
  console.log(x) // 72
  let x = 24 // ! Ошибка
  console.log(x)
}

Ссылки