var func = function() {
var i: number = 0;
if (i == 0) {
var y: number = 1;
}
document.body.innerHTML = y.toString(); // js/ts should complain me in this line
};
func(); // output: 1
Как вы можете видеть, я объявила переменную y
внутри блока if
. Поэтому я думаю, что на него нельзя ссылаться вне сферы действия.Доступ к переменной в блоке
Но, когда я попытался запустить код, выход 1
.
Это проблема в машинописном тексте/javascript?
Нет, это по дизайну. –
'var' в' if' имеет значение для функции, а не if. – Sam
Я не думаю, что машинопись отличается от javascript здесь, а 'var' имеет область функций. Вместо этого используйте 'let'. – Bergi