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


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的原型继承
Jul 25 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
Oct 17 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
JS中的==运算: [''] == false —&gt;true
Jul 24 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
npm scripts 使用指南详解
Oct 08 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 Javascript
vue制作抓娃娃机的示例代码
Apr 17 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
详解JavaScript中的this指向问题
Feb 05 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内存缓存Memcached类实例
2014/12/08 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
js导出格式化的excel 实例方法
2013/07/17 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
五种Python转义表示法
2020/11/27 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
AOP的定义以及作用
2013/09/08 面试题
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
护理专业本科生自荐信
2013/10/01 职场文书
手机促销活动方案
2014/02/05 职场文书
节约用水演讲稿
2014/05/21 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
借条如何写
2015/05/26 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang