时间:2021-05-26
一、区分显示的声明与隐式声明(var)
JS中变量声明分显式声明和隐式声明。
var name = 'muzidigbig';//显示声明 name = 'muzidigbig';//隐式声明(为全局变量的一个属性)在函数中使用var关键字进行显式声明的变量是做为局部变量,在全局范围内声明的变量为全局变量;而没有用var关键字,使用直接赋值方式声明的是全局变量(全局对象属性)。
// name = 'muzidigbig';//隐式声明(为全局变量的一个属性) console.log(name); function person(){ name = '木子大大'; console.log(name); } person();当我们使用访问一个没有声明的变量时,JS会报错;而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式声明一个全局变量,这一点一定要注意。
name = 'muzidigbig';//隐式声明(为全局变量的一个属性)console.log(name);function person(){ name = '木子大大'; console.log(name);//木子大大}person();在当前域中声明变量. 如果在方法中声明,则为局部变量(local variable);如果是在全局域中声明,则为全局变量。
而事实上是对属性赋值操作。首先,它会尝试在当前作用域链(如在方法中声明,则当前作用域链代表全局作用域和方法局部作用域)中解析 name; 如果在任何当前作用域链中找到name,则会执行对name属性赋值; 如果没有找到name,它才会在全局对象(即当前作用域链的最顶层对象,如window对象)中创造name属性并赋值。
注意!它并不是声明了一个全局变量,而是创建了一个全局对象的属性。
即便如此,可能你还是很难明白“变量声明”跟“创建对象属性”在这里的区别。事实上,Javascript的变量声明、创建属性以及每个Javascript中的每个属性都有一定的标志说明它们的属性----如只读(ReadOnly)不可枚举(DontEnum)不可删除(DontDelete)等等。
由于变量声明自带不可删除属性,比较var name = 'muzidigbig' 跟 name = 'muzidigbig',前者是变量声明,带不可删除属性,因此无法被删除;后者为全局变量的一个属性,因此可以从全局变量中删除。
若有不足请多多指教!希望给您带来帮助!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在JavaScript中,全局变量有两种声明方式使用var显示声明的全局变量不使用var声明的隐式全局变量两者的区别在于是否能通过delete操作符删除先看一段
使用var操作符声明的变量与未使用var操作符声明的变量区别Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵
很多语言中都有块级作用域,但JS没有,它使用var声明变量,以function来划分作用域,大括号“{}”却限定不了var的作用域。用var声明的变量具有变量提
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。声明方式一:使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否