声明没有var关键字的变量

在w3schools写道:

如果声明变量而不使用“var”,则变量始终变为GLOBAL。

在函数内声明全局变量是否有用?我可以想象在某个事件处理程序中声明一些全局变量,但它有什么用呢?更好地使用RAM?


慕哥9229398
浏览 604回答 3
3回答

慕村9548890

忘记var时的副作用隐含全局变量和明确定义的变量之间存在一个细微差别。区别在于使用delete运算符取消定义这些变量的能力:•无法删除使用var创建的全局变量(在任何函数之外的程序中创建的全局变量)。•可以删除在没有var的情况下创建的隐含全局变量(无论是否在函数内创建)。这表明隐含的全局变量在技术上不是真正的变量,但它们是全局对象的属性。可以使用delete运算符删除属性,而变量不能:// define three globalsvar global_var = 1;global_novar = 2; // antipattern(function () {   global_fromfunc = 3; // antipattern}());// attempt to deletedelete global_var; // falsedelete global_novar; // truedelete global_fromfunc; // true// test the deletiontypeof global_var; // "number"typeof global_novar; // "undefined"typeof global_fromfunc; // "undefined"在ES5严格模式下,对未声明变量的赋值(例如前面代码段中的两个反模式)将引发错误。

德玛西亚99

全局变量的唯一用途是,如果您需要全局访问它们。在这种情况下,您应该使用var函数外部的关键字来声明它们,以明确您确实要创建全局变量,并且不要忘记var在尝试声明局部变量时。通常,您应该尝试对代码进行范围调整,以便在全局范围内尽可能少地使用代码。您在脚本中使用的全局变量越多,您在另一个脚本中使用它的可能性就越小。通常,函数中的变量应该是局部变量,以便在退出函数时它们消失。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript