zoukankan      html  css  js  c++  java
  • JS关于全局变量的问题

    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操作符删除的,而变量是不能的:
  • 相关阅读:
    Java学习——HashMap
    git 常用命令
    java 正则表达式
    java 读写文件
    python Shapely 使用指南
    java 删除目录、 文件
    Java maven安装GDAL
    postgresql运维
    (转)媒体格式分析之flv -- 基于FFMPEG
    (转)rtmp协议简单解析以及用其发送h264的flv文件
  • 原文地址:https://www.cnblogs.com/Dainney/p/11080087.html
Copyright © 2011-2022 走看看