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 相关文章推荐
取得一定长度的内容,处理中文
Dec 20 Javascript
List all the Databases on a SQL Server
Jun 21 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
Apr 29 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
js 文本滚动效果的实例代码
Aug 17 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
js网页右下角提示框实例
Oct 14 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
jQuery获得字体颜色16位码的方法
Feb 20 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
微信小程序制作扭蛋机代码实例
Sep 24 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 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四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python显示生日是星期几的方法
2015/05/27 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
使用python list 查找所有匹配元素的位置实例
2019/06/11 Python
Python线程指南分享
2019/11/19 Python
NFL官方在线商店:NFLShop
2020/07/29 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
护理学中专毕业生求职信
2013/11/11 职场文书
高中军训感想300字
2014/03/04 职场文书
运动会班级前导词
2015/07/20 职场文书
工作一年自我鉴定
2019/06/20 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
zabbix监控mysql的实例方法
2021/06/02 MySQL