源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-04-05 00:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
javascript:变量的声明 以下是几种声明变量的方式
[u]复制代码[/u] 代码如下:
 var value;  var value,value1,value2;//同时声明多个变量,但是这些变量的值都是undefined  var i = 0,j = 0,k=100;//变量声明,初始化一体。  //如果大家尝试读一个不存在的变量(值)会报错!但是尝试给一个未使用Var声明的变量赋值,javascript  //会隐式的声明改变量,而且声明了的变量还是全局的。细节:所以大家创建变量都尽量使用Var  //变量的作用域(这个问题也容易出,大家要搞明白)
[b]javascript:变量的作用域 [/b] 这些都是细节,和我一样初学的一定要注意避免!
[u]复制代码[/u] 代码如下:
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
在嵌套的函数里面定义局部变量,效果会怎么样呢?看下面:
[u]复制代码[/u] 代码如下:
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(); //调用
[b]javascript:传值和传址 [/b]这里也是比较重要的概念!不要漏了。
  传值 传址
复制 实际复制的值,存在不同的、独立的拷贝。 复制的只是对数字的引用。如果通过这个新的引用修改了数值,这个改变对最初的引用来说也是可见的。
传递 传递给函数的是值的独立拷贝对它的改变在函数外没有影响 传递给函数的是对数值的引用,如果函数通过传递给它的引用修改了数值,这个改变也是可见的。
比较 比较这两个对立的值,通常逐字节的比较,以判断是否相等 比较的是两个引用,以判断它们引用的是否是同一个数值。
[b]javascript:基本类型和引用类型[/b] javascript的基本规则是:基本类型通过传值来操作,引用类型通过传址来操作。(什么事值类型,或者什么事引用看我上一篇) [b]按值传递 [/b]
[u]复制代码[/u] 代码如下:
 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
[b]按址传递 [/b]
[u]复制代码[/u] 代码如下:
 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;
小结:上面内容希望大家都不要错过,对学习后面的知识还是很有帮助的!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部