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 相关文章推荐
JavaScript中的setMilliseconds()方法使用详解
Jun 11 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
基于JS实现带动画效果的流程进度条
Jun 01 Javascript
Vue常用的几个指令附完整案例
Nov 06 Javascript
es6 symbol的实现方法示例
Apr 02 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
iview的table组件自带的过滤器实现
Jul 12 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 Javascript
JS实现容器模块左右拖动效果
Jan 14 Javascript
node.js文件的复制、创建文件夹等相关操作
Feb 05 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开发微信支付的代码分享
2014/05/25 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
python装饰器decorator介绍
2014/11/21 Python
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
优秀员工表扬信
2014/01/17 职场文书
学校教师读书活动总结
2014/07/08 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
数据设计之权限的实现
2022/08/05 MySQL