JS函数中变量加不加var有什么区别?

2018年10月28日15:59:17 2 92 阅读

JS函数中变量加不加var有什么区别?

在定义变量时要使用 var 操作符(var 是一个关键字),后跟变量名(即一个标识符),如下所示:

  1. var message;

需要注意的是,用var 操作符定义的变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中使用 var定义一个变量,那么这个变量在函数退出后就会被销毁,例如:

  1. function test(){
  2.  var message = "hi"// 局部变量
  3. }
  4. test();
  5. alert(message); // 报错

这里,变量 message 是在函数中使用 var 定义的。当函数被调用时,就会创建该变量并为其赋值。
而在此之后,这个变量又会立即被销毁,因此例子中的下一行代码就会导致错误。不过,可以像下面这
样省略 var 操作符,从而创建一个全局变量:

  1. function test(){
  2.  message = "hi"// 全局变量
  3. }
  4. test();
  5. alert(message); // "hi" 

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

最后

加与不加的区别就在于,加的话定义的就是局部变量,在函数结束后变量会被销毁,不加的话就是全局变量,在函数结束后变量不会被销毁,但是不推荐这样去定义全局变量。

虽然省略 var 操作符可以定义全局变量,但是在局部作用域中定义的全局变量很难维护,而且如果有意地忽略了 var 操作符,也会由于相应变量不会马上就有定义而导致不必要的混乱。

给未经声明的变量赋值在严格模式下会导致抛出 ReferenceError 错误。

 

完。


 

weinxin
来找我玩~
这是我的微信扫一扫~
  • A+
所属分类:JS
舍得

发表评论

不高兴 彩虹 吃瓜 丢翔 乖 滑稽 花心 惊哭 惊讶 挤眼 酷 伤心 帅吗? 礼物 玫瑰 怒 生气 喷 睡觉 太开心 小九九 啊
太阳 吐舌 委屈 笑眼 星星月亮 心碎 咦 阴险 疑问 真棒 偷笑 斜眼笑 震惊 略 哈欠 无奈哭 抠鼻 哼 期待 懒得理你 爱心 蜡烛

目前评论:2   其中:访客  2   博主  0

    • avatar boke112导航 3

      原来还有这种说法,学习了

      • avatar 子午书屋 1

        全局变量、局部变量