码迷,mamicode.com
首页 > Web开发 > 详细

JS关于全局变量的问题

时间:2019-06-25 00:38:12      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:定义   全局对象   属性   教材   调用   ret   rip   声明   div   

1 什么是全局变量

      全局变量就是在任何函数外面声明的或是未声明直接简单使用的,全局对象有个附加属性叫做window,此window(通常)指向该全局对象本身,使用过多的全局变量会造成代码可读性降低,全局变量所占内存较大

2 解决隐含的全局变量

    为什么会不自觉地创建出全局变量,首先,你可以甚至不需要声明就可以使用变量;第二,JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性,下面的两个例子很好的体现了,变量一定要用var 声明

function sum(x, y) {
  //这样写会隐含全局变量  result
   result = x + y;
   return result;
}

//正确的写法
function sum(x, y) {
   var result = x + y;
   return result;
}


//这样当你调用这个函数时,写也会生出全局变量b
function foo() {
var a = b = 0;
// ...
}
// 正确的写法
function foo() {
var a, b;
// ... a = b = 0; // 两个均局部变量
}

 2 隐含的全局变量跟var函数创建的区别

      

// 定义三个全局变量
var global_var = 1;
global_novar = 2; // 反面教材,不对的
(function () {
   global_fromfunc = 3; // 反面教材。不对的
  }());
// 试图删除
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true

//隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而变量是不能的:

 

JS关于全局变量的问题

标签:定义   全局对象   属性   教材   调用   ret   rip   声明   div   

原文地址:https://www.cnblogs.com/Dainney/p/11080087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!