Javascript 如果使用let,则在控制台中未定义
我正在学习ES5,刚刚遇到了主题“this”。 因此,在进行实验时,当我使用'var'关键字(假设'name')定义一个变量并将其记录为this.name时,我得到了正确的输出。但如果我对“let”也这么做,那就是给予未定义的东西。为什么呢Javascript 如果使用let,则在控制台中未定义,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在学习ES5,刚刚遇到了主题“this”。 因此,在进行实验时,当我使用'var'关键字(假设'name')定义一个变量并将其记录为this.name时,我得到了正确的输出。但如果我对“let”也这么做,那就是给予未定义的东西。为什么呢 // using var var name = 'roshan'; console.log(this.name); function f(){ console.log(this.name); } f(); // using let let name1
// using var
var name = 'roshan';
console.log(this.name);
function f(){
console.log(this.name);
}
f();
// using let
let name1 = 'roshan1';
console.log(this.name1);
function f1(){
console.log(this.name1);
}
f1();
[![image of console][1]][1]
[1]: https://i.stack.imgur.com/cA5WQ.png
顶级
var
被秘密地放在窗口或全局对象上。因此访问window.name
可以与您的var交互,如果this===window
,那么this.name