枫小熙

JavaScript的局部变量和全局变量小知识

(了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事)

如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如:

function test () {

  var message = "Hi";   // 局部变量 (解释:用var操作符定义的变量将成为定义该变量的作用域中的局部变量)

}

test();

alert (message); //此时发生错误

解释:因为变量message是在函数中使用var定义的。当函数被调用时,就会创建该变量并为其赋值。而在此之后,即函数调用完之后,这个变量又会立即被销毁,或者理解为该变量只在这个函数内有效,因此上面例子中的下一行代码  alert (message);  会发生错误。

 

不过呢,我们将var操作符省略掉,就会创建出一个全局变量,例如:(这样创建全局变量不推荐:首先难维护,其次给未经声明的变量赋值在文档模式中的严格模式上会抛出错误)

function test () {

  message = "Hi";   // 全局变量 

}

test();

alert (message); //此时会弹出Hi的弹框

省略了var操作符,message就成为了全局变量。所以,只要调用过一次test()函数,这个变量就有了定义,就可以在函数外部任何地方被访问到

posted on 2019-04-22 16:45  枫小熙  阅读(...)  评论(...编辑  收藏

My Links

Blog Stats