[Effective JavaScript 笔记] 第9条:始终声明局部变量

Posted 脚后跟着猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Effective JavaScript 笔记] 第9条:始终声明局部变量相关的知识,希望对你有一定的参考价值。

如果忘记将变量声明为局部变量,该变量将会隐式地转变为全局变量

function swap(a,i,j){

       temp=a[i];

       a[i]=a[j];

       a[j]=temp;

}

尽管该程序没有使用var声明temp变量,执行不会出错,而且temp会被添加到全局使用域中,变成一个全局变量。

修正过的代码

function swap(a,i,j){

      var temp=a[i];

      a[i]=a[j];

      a[j]=temp;

}

故意创建全局变量是不好的风格,意外创建是一种灾难。

可以使用lint工具对代码进行检测。使用工具可以提高你的js代码的质量,是值得去花时间花一点的。可以避免许多小的错误问题。

 

提示

  • 始终使用var声明新的局部变量
  • 考虑使用lint等工具帮助检查代码的变量

以上是关于[Effective JavaScript 笔记] 第9条:始终声明局部变量的主要内容,如果未能解决你的问题,请参考以下文章

[Effective JavaScript 笔记] 第12条:理解变量声明提升

[Effective JavaScript 笔记]第15条:当心局部块函数声明笨拙的作用域

[Effective JavaScript 笔记]第48条:避免在枚举期间修改对象

[Effective JavaScript 笔记] 第14条:当心命名函数表达式笨拙的作用域

[Effective JavaScript 笔记]第23条:永远不要修改arguments对象

[Effective JavaScript 笔记]第17条:间接调用eval函数优于直接调用