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 相关文章推荐
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
js中的getAttribute方法使用示例
Aug 01 Javascript
javascript刷新父页面的各种方法汇总
Sep 03 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
源码分析Vue.js的监听实现教程
Apr 23 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
React Native中Mobx的使用方法详解
Dec 04 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
数据库相关问题
2006/10/09 PHP
PHP4实际应用经验篇(3)
2006/10/09 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
vue实现简单瀑布流布局
2020/05/28 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python实现井字棋小游戏
2020/03/04 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
国贸专业自荐信范文
2014/03/02 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
以权谋私检举信范文
2015/03/02 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
销售人员管理制度
2015/08/06 职场文书
治庸问责工作总结
2015/08/11 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
在Docker容器中部署SQL Server
2022/04/11 Servers