三种方法

1.在js的function外定义一个变量

var name='测试';

function XX(){

       alert(name);

}

2.不使用var,直接给定义变量,隐式的声明了全局变量

name='测试';

function XX(){

alert(name);

}

这种方法,即使该变量是在一个function内,当该function被执行后它变成了全局变量 ---- 但是function不执行它就不被其他function知道,所以最好定义在function外

3.使用window.变量名定义为全局变量,但是注意:调用时候建议写上window.变量名,当然也可以不写;我们常用的document.getXXX的document对象就是window的

window.name='测试';

function XX(){

alert(window.name);

}

全局变量的优点:

可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。

全局变量的缺点:
(1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。
(2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。
(3)全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。
因此,如果不是万不得已,最好不要使用全局变量。

JS中如何定义全局变量相关推荐

  1. js定义全局变量 vue页面_vue.js中如何定义全局变量?

    vue.js中如何定义全局变量?下面本篇文章给大家介绍一下在 Vuejs 项目中如何定义全局变量.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在 Vuejs 项目中如何定义全局变 ...

  2. JS中怎么定义全局变量

    今天在项目里面看到了这种定义 全局变量的方法,我当时是懵逼的,这样定义不会报错吗? var a = 9; function test(){ b = a; alert(b); } 当时我以为这个b弹出来 ...

  3. angular中如何定义全局变量_angularjs 设置全局变量的方法

    angularjs 设置全局变量的3种方法 angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种.要实现的功能是,在ng-app中定义的全局变量,在不同的ng- ...

  4. js中数组定义Array

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组定义 js中数组的定义非常简单,包含以下5中方式.不过首先要明确的是数组是Array类型的.不是基本数据类型 代码如下: v ...

  5. C语言中如何定义全局变量

    C语言中如何定义全局变量 C/C++ 2010-09-06 13:01:39 阅读590 评论0   字号:大中小 订阅 众所周知,全局变量在被定义后,系统会为全局变量分配内存并且它还可以被其他模块通 ...

  6. 在vue项目中 如何定义全局变量 全局函数

    原文 定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vue.prototype挂载到vue实例 ...

  7. html5自定义变量,javascript中怎么定义全局变量?

    javascript中定义全局变量的方法:1.使用var+变量名,在方法外部定义全局变量.2.在方法内部不使用关键字直接定义.3.使用window全局对象定义. JavaScript定义全局变量的方法 ...

  8. python怎么定义全局变量_python中如何定义全局变量

    全局变量的用法有两种: 全局变量是编程语言中常见的一种变量,通过全局定义,可以是某对象函数创建,也可以是本程序任何位置创建,能够被本程序中的所有 对象或函数进行引用,全局变量的定义有利于程序的变量共享 ...

  9. angular中如何定义全局变量_如何在Angular 2 / Typescript中声明全局变量?

    这是最简单的解决方案,Service没有/ 也没有Observer: 将全局变量放在文件中,然后导出它们. // // ===== File globals.ts // 'use strict'; e ...

最新文章

  1. adc参考电压是直流交流_无位置传感器无刷直流电机换相误差校正的新方法
  2. java中的main的介绍_Java中的main函数详细讲解
  3. 从FTP服务器进行文件的上传和下载
  4. layui select 赋值_layui给下拉框及日期组件赋值
  5. Gym102059A Coloring Roads
  6. ExecuteScalar
  7. [Leetcode][程序员面试金典][面试题17.13][JAVA][恢复空格][动态规划][Trie][字符串哈希]
  8. ios 代码设置控件宽高比_ios-自动布局以保持视图大小比例
  9. GridViewDetailsView对XML文件增删改
  10. 计算机f8键的功能,详解:XP系统修改启动时F8键有哪些功能?
  11. java代码启动spring_javascript - 从JavaScript调用Java代码( Spring 启动)
  12. Tomcat配置阿里云免费的SLL证书
  13. 单链表的基本操作---插入,删除,交,并,相邻元素的交换等
  14. 个人收藏的一些资料(一)Installshield制作友好的更新
  15. 如何安装mysql5.7.25流程_linux下安装mysql5.7.25详细教程
  16. 《你的知识需要管理》序:五步打造个人知识力
  17. java 汉字乱码_【转】Java中文乱码的解决
  18. 计算机网络调试套什么定额,第一章计算机网络系统设备安装工程定额.docx
  19. NOIP2004提高组一等奖名单[推荐]
  20. 小运营征战大市场,手游运营也需”千人千面” ——DT时代手游精细化运营解析

热门文章

  1. python商品会员打折_双十一商品优惠打折,用Python爬取商品信息分析发现这里套路真深...
  2. C++ vector容器的排序 (从小到大,从大到小)
  3. 魅族手机一键修改androidid参数
  4. Python词频统计之密信约定进攻时间
  5. 母亲骑摩托4千里回家看儿子 为保险女扮男装
  6. uniapp 电子印章_第二章《uni-app记账小程序引导页+登录+注册篇》
  7. HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML+CSS+JS网页设计期末课程大作业...
  8. 关于HttpWebRequest AddRange 方法的参数
  9. 阿里云mysql gtid_阿里云RDS与ECS自建mysql数据库主从同步(GTID方式)
  10. loki 日志管理的安装部署使用