JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例


Posted in Javascript onJune 29, 2013

javascript:变量的声明
以下是几种声明变量的方式

 var value;
 var value,value1,value2;//同时声明多个变量,但是这些变量的值都是undefined
 var i = 0,j = 0,k=100;//变量声明,初始化一体。
 //如果大家尝试读一个不存在的变量(值)会报错!但是尝试给一个未使用Var声明的变量赋值,javascript
 //会隐式的声明改变量,而且声明了的变量还是全局的。细节:所以大家创建变量都尽量使用Var
 //变量的作用域(这个问题也容易出,大家要搞明白)

javascript:变量的作用域
 这些都是细节,和我一样初学的一定要注意避免!
var golbal = "golbal"; //全局变量
 var local ="local";
function area()
 {
//局部变量的优先级比全局变量的高
var local = "arealocal"
//当函数体内声明的变量名和全局变量名相同时,javascript 会隐藏全局变量
var golbal ="areagolbal"; document.write("local is :"+local + "and golbal is :" + golbal +"<br />");
 }
area();
//输出:local is :arealocaland golbal is :areagolbal

在嵌套的函数里面定义局部变量,效果会怎么样呢?看下面:
var hope = "moremoney";
function createmore()
{
var hope = "have more money";//局部
function createmoreto()//嵌套函数
{
var hope = "have more money to much";//局部
document.write("Createmoreto hope is :"+hope +"<br />");
  //输出:Createmoreto hope is :have more money to much
}
 createmoreto();//调用
 document.write("Createmore hope is :" +hope +"<br />");
//输出:Createmore hope is :have more money
}
 createmore(); //调用

javascript:传值和传址
这里也是比较重要的概念!不要漏了。

  传值 传址
复制 实际复制的值,存在不同的、独立的拷贝。 复制的只是对数字的引用。如果通过这个新的引用修改了数值,这个改变对最初的引用来说也是可见的。
传递 传递给函数的是值的独立拷贝对它的改变在函数外没有影响 传递给函数的是对数值的引用,如果函数通过传递给它的引用修改了数值,这个改变也是可见的。
比较 比较这两个对立的值,通常逐字节的比较,以判断是否相等 比较的是两个引用,以判断它们引用的是否是同一个数值。

javascript:基本类型和引用类型

javascript的基本规则是:基本类型通过传值来操作,引用类型通过传址来操作。(什么事值类型,或者什么事引用看我上一篇)
按值传递

 var value = 1;
 var copyvalue = value; //将value赋给另一个变量
  function addTotal(total,arg)
  {
 total+= arg; //total = total + arg 效果等同
 }
 //调用函数,传两个参数(大家可能会认为这个函数改变了全局变量的值,其实没有,函数用的也是对立拷贝)
 addTotal(value,copyvalue); 
 if(value == 1) copyvalue = 2;
 document.write("total \t" + value + "and copyvalue \t\t" + copyvalue+"<br />");
 //最后输出:total 1and copyvalue 2

按址传递
 var array = new Array("Javascccp");
 var objarray = array;
 function modifyArray(arr)
 {
 arr[0] = "JAVASCRIPT";
 }
 //没调用函数前
 document.write(array[0] +"<br />");
 //输出Javascccp;
 //调用函数后
 modifyArray(array);
 document.write(array[0]+"<br />");
 //输出大写JAVASCRIPT
 //通过修改objarray会是一样的效果
 objarray[0] = "Frank";
 document.write(array[0]+"<br />");
  //输出Frank;

小结:上面内容希望大家都不要错过,对学习后面的知识还是很有帮助的!
Javascript 相关文章推荐
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
基于Bootstrap框架实现图片切换
Mar 10 Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
vue如何判断dom的class
Apr 26 Javascript
Angular Renderer (渲染器)的具体使用
May 03 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
npm全局模块卸载及默认安装目录修改方法
May 15 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
Apr 07 Javascript
JavaScript字符串转数字的简单实现方法
Nov 27 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 #Javascript
js操作checkbox遇到的问题解决
Jun 29 #Javascript
JavaScript自执行闭包的小例子
Jun 29 #Javascript
JS自动适应的图片弹窗实例
Jun 29 #Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 #Javascript
Ext JS添加子组件的误区探讨
Jun 28 #Javascript
Javascript实现重力弹跳拖拽运动效果示例
Jun 28 #Javascript
You might like
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
php通过COM类调用组件的实现代码
2012/01/11 PHP
php导出excel格式数据问题
2014/03/11 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
php组合排序简单实现方法
2016/10/15 PHP
js 表格隔行颜色
2009/12/02 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
Python有参函数使用代码实例
2020/01/06 Python
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
企划主管岗位职责
2013/12/12 职场文书
乔迁宴答谢词
2014/01/21 职场文书
校庆活动方案
2014/03/31 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
终止劳动合同协议书
2014/04/14 职场文书
大型公益活动策划方案
2014/08/20 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
正规欠条模板
2015/07/03 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python