关于全局变量和局部变量的那些事


Posted in Javascript onJanuary 11, 2013

变量对于学习js,学习编程语言的同学在熟悉不过了,在这里就不在阐述官方的定义了,网上太多了,今天我们就从生活中来理解他

1.什么是变量?
比如:
一个水杯里面装了水,这个水杯就是变量;
一瓶啤酒,这个啤酒瓶就是变量;
变量就是一个载体,一个媒介

2.定义变量
var a=12;//typeof a=Numer
var a=‘aaa' //typeof a =string
由此可见 变量的类型取决于给他付了什么值
例如,一个杯子,装了水就是水杯,装了酒就是酒杯,装了醋就是醋瓶

3.变量类型
变量类型分为:基本类型和引用类型
基本类型分为:Number(数字类型),String(字符串类型),Boolean(布尔类型),Undefined(未定义),Null
引用类型:大多数是Obiect(对象)
基本类型值是保存在栈内存中的简单的数据,他在内存中占一个位置;
引用类型值是保存在堆内存中的对象,在栈内存中存放的是地址,这个地址指向堆内存中的对象

1.局部变量

<scripttype="text/javascript"> 
functionaaa() 
{ 
vara=10; 
} 
functionbbb() 
{ 
alert(a) 
} 
aaa() 
bbb() 
</script>

运行结果:错误:“a”未定义,a是局部变量,他只属于函数aaa,并不属于函数bbb
2.全局变量1
<scripttype="text/javascript"> 
vara 
functionaaa() 
{ 
vara=10; 
} 
functionbbb() 
{ 
alert(a) 
} 
aaa() 
bbb() 
</script>

运行结果:弹出undefined,这也是变量的类型之一,只不过是undefined类型,他并不同等与第一种的未定义
变量的类型是由赋给变量的值决定的,这个时候bbb函数里的a是全局变量,虽然var了,但是并没有指定值,所以是undefined
3.全局变量2
<scripttype="text/javascript"> 
vara 
functionaaa() 
{ 
a=10; 
} 
functionbbb() 
{ 
alert(a) 
} 
aaa() 
bbb() 
</script>

运行结果:10,a是全局变量并且通过函数aaa赋了值——10
ps:我们经常称undefined是未定义,都是通过1和2,是不是可以说undefined≠未定义呢
Javascript 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
jQuery 位置插件
Dec 25 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
原生JavaScript制作计算器
Oct 16 Javascript
JavaScript实现开关等效果
Sep 08 Javascript
React全家桶环境搭建过程详解
May 18 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
JS实现基本的网页计算器功能示例
Jan 16 Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
jquery延迟加载外部js实现代码
Jan 11 #Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 #Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 #Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 #Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 #Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 #Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 #Javascript
You might like
基于jquery的tab切换 js原理
2010/04/01 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
Python3写入文件常用方法实例分析
2015/05/22 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
Java的五个基础面试题
2016/02/26 面试题
晚会邀请函范文
2014/01/24 职场文书
品牌服务方案
2014/06/03 职场文书
会计学专业自荐信
2014/06/25 职场文书
普通党员对照检查材料
2014/08/28 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python