一、使用变量name出现的问题
name原来是window中的一个属性,一旦使用var重新申明name变量,这就使得window中的name属性被新定义的name替换,原因还是因为window是var类型的全局对象。
二、解决无法使用变量name
使用let申明
let声明的变量拥有块级作用域。 也就是说用let声明的变量的作用域只是外层块,而不是整个外层函数。这就使得let定义的变量不再是全局作用,让name只存在于当前的js的作用域。
name原来是window中的一个属性,一旦使用var重新申明name变量,这就使得window中的name属性被新定义的name替换,原因还是因为window是var类型的全局对象。
let声明的变量拥有块级作用域。 也就是说用let声明的变量的作用域只是外层块,而不是整个外层函数。这就使得let定义的变量不再是全局作用,让name只存在于当前的js的作用域。