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


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 相关文章推荐
几个比较经典常用的jQuery小技巧
Mar 01 Javascript
JS+CSS实现带小三角指引的滑动门效果
Sep 22 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
js数组去重的hash方法
Dec 22 Javascript
JavaScript实现瀑布流以及加载效果
Feb 11 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
Mar 02 Javascript
详解vue-cli项目中怎么使用mock数据
May 29 Javascript
vue 的点击事件获取当前点击的元素方法
Sep 15 Javascript
9102年webpack4搭建vue项目的方法步骤
Feb 20 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
PHP与SQL注入攻击[一]
2007/04/17 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
记录PHP错误日志 display_errors与log_errors的区别
2012/10/09 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
初婚未育证明
2014/01/15 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
自我工作评价范文
2015/03/06 职场文书
简短清晨问候语
2015/11/10 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
SpringBoot快速入门详解
2021/07/21 Java/Android