Скажем, у меня есть такой фрагмент кода:
const number = 3;
function fooFunction() {
let numberTwo = 5;
var answer = number + numberTwo;
return answer;
}
finalAnswer = fooFunction();
console.log(finalAnswer);
Предполагая, что браузер совместим с ES2015, каковы будут преимущества / недостатки использования приведенного выше кода по сравнению с:
const number = 3;
function fooFunction() {
var numberTwo = 5;
var answer = number + numberTwo;
return answer;
}
finalAnswer = fooFunction();
console.log(finalAnswer);
Есть ли какие-либо преимущества или недостатки, учитывая, что они оба возвращают один и тот же номер?
let
иvar
заключается в области действия. Не производительность. - person mferly   schedule 20.05.2016let
была бы более безопасной, поскольку данные не были бы доступны вне функции. Это правильно или неправильно? Если нет, то почему это не имеет значения? Кроме того, не снижает ли производительность подъемные механизмы? Я бы так и подумал. - person Peter David Carter   schedule 20.05.2016var
- это область действия функции, которая не видна вне функции.let
, поскольку область видимости блока означает, что она не обязательно видна во всей функции, но они оба являются локальными для вашей функции ... - person Joe Hanink   schedule 20.05.2016var answer
недоступен за пределами блокаfooFunction()
. - person mferly   schedule 20.05.2016var
переменные поднимаются за пределы области действия функции и доступны интерпретатору на глобальном уровне, аlet
- нет. Это не так? - person Peter David Carter   schedule 20.05.2016var
поднимается наверх функции, а не вне функции :) - person Joe Hanink   schedule 20.05.2016let
, остается неинициализированной вне функции, в которой она вызывается, что, кажется, имеет место, это более безопасно, чемvar
, поскольку данные недоступны для чего-либо, кроме функции сам? - person Peter David Carter   schedule 21.05.2016