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


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 模拟点击广告
Jan 02 Javascript
DWZ table的原生分页浅谈
Mar 01 Javascript
使用jQuery插件创建常规模态窗口登陆效果
Aug 23 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
js判断为空Null与字符串为空简写方法
Feb 24 Javascript
Jquery 分页插件之Jquery Pagination
Aug 25 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
vue-property-decorator用法详解
Dec 12 Javascript
taro 实现购物车逻辑的实例代码
Jun 05 Javascript
在nuxt中使用路由重定向的实例
Nov 06 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
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
vue axios整合使用全攻略
2018/05/24 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
用js编写留言板
2020/03/17 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
Python中取整的几种方法小结
2017/01/06 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
pytorch打印网络结构的实例
2019/08/19 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
资深生产主管自我评价
2013/09/22 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
TV动画《间谍过家家》公开PV
2022/03/20 日漫
Linux中sftp常用命令整理
2022/06/28 Servers