以下代码是否在JavaScript中创建全局变量?

以下代码是否在JavaScript中创建全局变量?,javascript,Javascript,上面的代码似乎创建了全局变量。不!因为变量是在函数中声明的控制台日志语句返回什么?我认为没有或没有定义。您需要console.log(user1.name)我相信.No)删除这行控制台.log(this.name)。名称应参考,由浏览器预定义。如果在任何点调用全局属性时未使用new,则User可能会修改该属性。log(name)返回“Some name”。不,它不只是使用显示的代码。。。您误解了返回该值的函数中的日志,但我认为,如果在声明变量时不使用'var'关键字,则无论在何处,该变量都将是全

上面的代码似乎创建了全局变量。

不!因为变量是在
函数中声明的

控制台日志语句返回什么?我认为没有或没有定义。您需要
console.log(user1.name)我相信.No)删除这行
控制台.log(this.name)
名称
应参考,由浏览器预定义。如果在任何点调用全局属性时未使用
new
,则
User
可能会修改该属性。log(name)返回“Some name”。不,它不只是使用显示的代码。。。您误解了返回该值的函数中的日志,但我认为,如果在声明变量时不使用'var'关键字,则无论在何处,该变量都将是全局变量。@TuanLe如果您指定了以前未知的变量,则在创建全局变量时即是如此。
this
关键字及其值为您绑定到
函数。但是,属性分配修改的是特定对象,而不是任何作用域(本地或全局)。新创建的对象实例“user1”可以全局访问。@JonathanLonowski那么,为什么在函数console.log(name)中执行时,从console.log(this.name)得到相同的结果;
function User (theName, theEmail) {
    this.name = theName;
    this.email = theEmail;
    this.quizScores = [];
    this.currentScore = 0;
    console.log(this.name);
}
var user1 = new User("Some Name", "tafd@sdf.com");
console.log(name);