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


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中Eval函数的使用说明
Oct 11 Javascript
jQuery UI 应用不同Theme的办法
Sep 12 Javascript
JS焦点图切换,上下翻转
May 12 Javascript
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
May 24 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
JavaScript 学习笔记之操作符(续)
Jan 14 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
Oct 23 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
vue中tab选项卡的实现思路
Nov 25 Javascript
javascript防抖函数debounce详解
Jun 11 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中for循环语句的几种变型
2007/03/16 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
python执行外部程序的常用方法小结
2015/03/21 Python
Python中super的用法实例
2015/05/28 Python
python中eval与int的区别浅析
2019/08/11 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
运动会入场词50字
2014/02/20 职场文书
导师工作推荐信范文
2014/05/17 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
大国崛起观后感
2015/06/02 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
react 项目中引入图片的几种方式
2021/06/02 Javascript
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle