你的位置:首页 > Java教程

[Java教程]js 默认的参数、可变的参数、变量作用域

可以通过arguments对象来实现可变的参数

在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。

arguments是一个数组对象,可以通过下标来实别参数的位置,通过.length来获参数的个数。

代码实例:我们通过arguments来改变函数的默认参数

1 <script>2     function demo(x,y){      3       x = arguments[0]?arguments[0]:1;  //arguments[0]代表demo函数的参数第一个4       y = arguments[1]?arguments[1]:2;  //arguments[1]代表demo函数的参数第二个5       return x+y6     }7     alert(demo(4,5))   //我们调用函数的参数=>98     alert(demo())    //我们调用默认参数 =>39 </script>

代码实例:通过arguments.length来获取参数的长度所实现的参数和

 1 <script> 2     function demo(){ 3       var count = arguments.length  //把参数的长度保存的count的变量中 4       var sum =0           //声名一个总和的变量 5       for(var i =0;i<count;i++){   //使用for循环把所有参数的长度遍历出来 6         sum+=arguments[i]      //求出每个arguments所对应下标的参数的值相加  7        } 8       return sum         //把值返回给函数 9      }10      alert(demo(1,2,3,4,5,6))    //=>把自己定义的参数传入,=>2111 </script>

代码实例:通过arguments.length再来获取参数的长度所实现的参数最大值

 

 1 <script> 2     function demo(){ 3       var count = arguments.length  //把参数的长度保存的count的变量中 4       var max =0           //声名一个最大值 5       for(var i =0;i<count;i++){   //使用for循环把所有参数的长度遍历出来 6         if(arguments[i]>max){    //做一个if语句的判断,遍历出来所有最大值依次给与max,直接便利结束 7           max = arguments[i] 8          }       9        }10       return max         //把值返回给函数11      }12      alert(demo(10,20,1,4,11))    //=>把自己定义的参数传入,=>2013 </script>

 

 变量的作用域:

 全局变量和局部变量的区别:

 全局在函数体外声名,从脚开始可以用到脚本结束。

 局部变量在函数体内声名变量只能在函数体内进行使用。

代码示例:

 

1 <script>2     var x = "全局变量x";3     function demo(){4       var x = "局部变量x";5       alert(x)  6     }7     demo()  //=>先是弹出局布变量x,因为我们调用函数执行代码块,因为x是在函数体内声名的与全局变量不冲突8     alert(x) //=>再是弹出全局变量x,因为我们是在函数体外alert(x),只能调用到全局函数的变量,当函数执行完成,自动会回收掉函数体的内容9 </script>

 

最好使用var语句来声名变量:

代码示例 :

 

1 <script>2    var x =13    function demo(){4      x =2  //如果函数体内变量没有加var关键字,则这个变量则自动变为全局变量5       alert(x)6     }7    demo()  //=>输出结果为28    alert(x)  //=>此时输出结果也为2,因为函数体内的变量用的是全局变量,变量重名赋值时会被覆盖掉9 </script>

 

用一段混合型的代码示列来全面解析全局变量和局部变量

 

 1 <script> 2   //解析一下全局变量和局部变量 3    var x = 1,y =2;   //这是在script脚本内,函数体外声明的两个全局变量x和y 4    function demo(x,y){ 5      document.write(x)  //=>undefined 因为在调用函数的时候没有写入参数,没有值的参数默认为undefined 6      document.write(y)  //同上 7      var x = 5,y =6;   //在此在函数体内声明了两个局部变量x和y 8      document.write(x)  //由于js代码是从上到下执行的,此时的x用的是局部变量x 9      document.write(y)  //同上10      z =x+y        //在函数体内声明了一个没有加var的z,此是它是全局变量,但是由是在函数体内赋值,用的x,y都是局部变量11      document.write(z)  //=>输出结果为1112    }13    demo()14   alert(z)      //由于z是全局变量,还是可以在函数外取到z的值 =>1115   alert(x)     //=>1   在函数体外得到x,得到的是全局变量x16   alert(y)     //同上17 </script>

 


印度尼西亚旅游哪里好玩呢印度尼西亚旅游签证怎么办理印度尼西亚旅游去哪好印度尼西亚旅游团报价优惠印度尼西亚蜜月旅游行程参考中山哪里有木棉花?中山看木棉花的好地方? 永范花海 东山岭脚下百花开 中山仙踪龙园清明节游玩攻略?2015清明仙踪龙园门票价格? 中山仙踪龙园玉兰花什么时候开?仙踪龙园玉兰花开花时间? 开平梅花节开幕时间?开平梅花节时间地点? 2015元旦深圳演唱会有哪些明星?深圳世界之窗元旦有哪些好玩的活动? 2015元旦深圳哪里有演唱会?深圳演唱会门票多少钱? 深圳世界之窗2015元旦跨年演唱会?世界之窗元旦演唱会几点开始? 泰国普吉岛恰隆寺好玩吗?泰国普吉岛恰隆寺怎么样? 暑假去普吉岛旅游天气怎么样?要注意什么? 泰国曼谷都有那些节日庆典?具体时间? 泰国詹姆士邦德岛好玩吗?泰国詹姆士邦德岛怎么样? 夏天清远漂流要注意什么?漂流有哪些细节需要注意的 深圳有什么山? 广州天河区有什么好玩的? 女生去清远玩漂流该注意什么事项呢? AT29C25720JC Datasheet AT29C25720JC Datasheet AT29C257-20JI Datasheet AT29C257-20JI Datasheet AT29C257-20PC Datasheet AT29C257-20PC Datasheet 玉林旅游景点大全 玉林旅游景点大全 玉林旅游景点大全 番禺长隆水上乐园 番禺长隆水上乐园 番禺长隆水上乐园 唐山美食 唐山美食 唐山美食