Check out Firefox Developer Edition, the first browser built for developers like you. http://mzl.la/112VrtT

mozilla
Your Search Results

    let

    Introduced in JavaScript 1.7

    Аннотация

    Объявляет локальную переменную в области видимости блока, с присвоением значения по необходимости.

    Синтаксис

    let в контексте определения:

    let переменная1 [= значение1] [, переменная2 [= значение2]] [, ..., переменнаяN [= значениеN]];

    let в контексте выражения:

    let (переменная1 [= значение1] [, переменная2 [= значение2]] [, ..., переменнаяN [= значениеN]]) выражение;

    let в контексте инструкции:

    let (переменная1 [= значение1] [, переменная2 [= значение2]] [, ..., переменнаяN [= значениеN]]) инструкция;

    Параметры

    Параметр Описание
    переменная1, переменная2, …, переменнаяN Имя переменной. Может быть любым допустимым идентификатором.
    значение1, значение2, …, значениеN Начальное значение переменной. Может быть любым допустимым выражением.
    выражение Любое допустимое выражение.
    инструкция Любая допустимая инструкция.

    Описание

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

    Блочная область видимости

    Переменные, объявленные через let "поднимаются" в начало блока.

    Переобъявление той же самой переменной в той же самой блочной области видимости вызывает ошибку типа TypeError.

    if (x) {
      let foo;
      let foo; // Ошибка TypeError.
    }

    Однако, данное ограничение не относится к телу функции!

    function do_something() {
      let foo;
      let foo; // Здесь все прекрасно работает.
    }
    Предупреждение: В черновике ECMAScript 6 (по состоянию на апрель 2012 года) данное поведение является недопустимым. Это значит, что будущие версии JavaScript скорее всего будут совместимы со стандартом и вызовут ошибку TypeError. Если Вы используете это поведение, Вам следует воздержаться от этого!

    Вы можете столкнуться с ошибками в инструкциях switch из-за того, что в нем только один низлежащий блок.

    switch (x) {
      case 0:
        let foo;
        break;
        
      case 1:
        let foo; // Ошибка TypeError из-за переобъявления.
        break;
    }

    Примеры

    Выражение с let ограничивает область видимости объявленной переменной в рамках этого выражения.

    var a = 5;
    let(a = 6) alert(a); // 6
    alert(a); // 5

    Ключевое слово let, использованное внутри блока, ограничивает область видимости переменной в пределах этого блока. Обратите внимание на отличие от ключевого слова var, область видимости которого ограничено пределами функции, в которой оно было объявлено.

    var a = 5;
    var b = 10;
    
    if (a === 5) {
      let a = 4; // Область видимости внутри блока if
      var b = 1; // Область видимости внутри функции
    
      console.log(a);  // 4
      console.log(b);  // 1
    } 
    
    console.log(a); // 5
    console.log(b); // 1

    Ключевое слово let можно использовать для связывания переменных с локальной областью видимости циклов вместо использования глобальной переменной (объявленной через var).

    for (let i = 0; i<10; i++) {
      alert(i); // 1, 2, 3, 4 ... 9
    }
    
    alert(i); // i не определена

    Смотрите также

    Метки документа и участники

    На данную страницу внесли свой вклад: nurbek.ab, teoli
    Обновлялась последний раз: teoli,