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


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与vbscript数据共享
Jan 09 Javascript
jQuery学习笔记之Helloworld
Dec 22 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
js中el表达式的使用和非空判断方法
Mar 28 Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 Javascript
Vue 刷新当前路由的实现代码
Sep 26 Javascript
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
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定时自动生成静态HTML的实现代码
2010/06/20 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
js计算页面刷新的次数
2009/07/20 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
nodejs连接mongodb数据库实现增删改查
2016/12/01 NodeJs
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
python扫描线填充算法详解
2020/02/19 Python
Django框架models使用group by详解
2020/03/11 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
毕业生的求职信范文分享
2013/12/04 职场文书
班长竞选演讲稿
2014/04/24 职场文书
英语故事演讲稿
2014/04/29 职场文书
齐云山导游词
2015/02/06 职场文书
大学入学感言
2015/08/01 职场文书
导游词之清晏园
2019/11/22 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android