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 相关文章推荐
对textarea框的代码调试,而且功能上使用非常方便,酷
Jun 30 Javascript
Jquery多选框互相内容交换的实例代码
Jul 04 Javascript
jquery修改网页背景颜色通过css方法实现
Jun 06 Javascript
node.js中的fs.createReadStream方法使用说明
Dec 17 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
jQuery中fadein与fadeout方法用法示例
Sep 16 Javascript
jquery easyui validatebox remote的使用详解
Nov 09 Javascript
JS对象深度克隆实例分析
Mar 16 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 Javascript
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
跟老齐学Python之数据类型总结
2014/09/24 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
后勤自我鉴定
2013/10/13 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
村委会贫困证明范文
2014/09/21 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
SQLServer常见数学函数梳理总结
2022/08/05 MySQL
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers