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


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 相关文章推荐
JavaScript开发时的五个注意事项
Dec 08 Javascript
禁止js文件缓存的代码
Apr 09 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
JQuery学习总结【二】
Dec 01 Javascript
jQuery 选择符详细介绍及整理
Dec 02 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
JavaScript创建对象方法实例小结
Sep 03 Javascript
8个有意思的JavaScript面试题
Jul 30 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
layui表格分页 记录勾选的实例
Sep 02 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
Js注册协议倒计时的小例子
2013/06/24 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
python3中bytes和string之间的互相转换
2017/02/09 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
校园活动宣传方案
2014/03/28 职场文书
公司捐款倡议书
2014/05/14 职场文书
《詹天佑》教学反思
2016/02/20 职场文书