js 默认的参数、可变的参数、变量作用域
2016-02-11 12:00
603 查看
可以通过arguments对象来实现可变的参数
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
arguments是一个数组对象,可以通过下标来实别参数的位置,通过.length来获参数的个数。
代码实例:我们通过arguments来改变函数的默认参数
代码实例:通过arguments.length来获取参数的长度所实现的参数和
代码实例:通过arguments.length再来获取参数的长度所实现的参数最大值
变量的作用域:
全局变量和局部变量的区别:
全局在函数体外声名,从脚开始可以用到脚本结束。
局部变量在函数体内声名变量只能在函数体内进行使用。
代码示例:
最好使用var语句来声名变量:
代码示例 :
用一段混合型的代码示列来全面解析全局变量和局部变量
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
arguments是一个数组对象,可以通过下标来实别参数的位置,通过.length来获参数的个数。
代码实例:我们通过arguments来改变函数的默认参数
<script> function demo(x,y){ x = arguments[0]?arguments[0]:1; //arguments[0]代表demo函数的参数第一个 y = arguments[1]?arguments[1]:2; //arguments[1]代表demo函数的参数第二个 return x+y } alert(demo(4,5)) //我们调用函数的参数=>9 alert(demo()) //我们调用默认参数 =>3 </script>
代码实例:通过arguments.length来获取参数的长度所实现的参数和
<script> function demo(){ var count = arguments.length //把参数的长度保存的count的变量中 var sum =0 //声名一个总和的变量 for(var i =0;i<count;i++){ //使用for循环把所有参数的长度遍历出来 sum+=arguments[i] //求出每个arguments所对应下标的参数的值相加 } return sum //把值返回给函数 } alert(demo(1,2,3,4,5,6)) //=>把自己定义的参数传入,=>21 </script>
代码实例:通过arguments.length再来获取参数的长度所实现的参数最大值
<script> function demo(){ var count = arguments.length //把参数的长度保存的count的变量中 var max =0 //声名一个最大值 for(var i =0;i<count;i++){ //使用for循环把所有参数的长度遍历出来 if(arguments[i]>max){ //做一个if语句的判断,遍历出来所有最大值依次给与max,直接便利结束 max = arguments[i] } } return max //把值返回给函数 } alert(demo(10,20,1,4,11)) //=>把自己定义的参数传入,=>20 </script>
变量的作用域:
全局变量和局部变量的区别:
全局在函数体外声名,从脚开始可以用到脚本结束。
局部变量在函数体内声名变量只能在函数体内进行使用。
代码示例:
<script> var x = "全局变量x"; function demo(){ var x = "局部变量x"; alert(x) } demo() //=>先是弹出局布变量x,因为我们调用函数执行代码块,因为x是在函数体内声名的与全局变量不冲突 alert(x) //=>再是弹出全局变量x,因为我们是在函数体外alert(x),只能调用到全局函数的变量,当函数执行完成,自动会回收掉函数体的内容 </script>
最好使用var语句来声名变量:
代码示例 :
<script> var x =1 function demo(){ x =2 //如果函数体内变量没有加var关键字,则这个变量则自动变为全局变量 alert(x) } demo() //=>输出结果为2 alert(x) //=>此时输出结果也为2,因为函数体内的变量用的是全局变量,变量重名赋值时会被覆盖掉 </script>
用一段混合型的代码示列来全面解析全局变量和局部变量
<script> //解析一下全局变量和局部变量 var x = 1,y =2; //这是在script脚本内,函数体外声明的两个全局变量x和y function demo(x,y){ document.write(x) //=>undefined 因为在调用函数的时候没有写入参数,没有值的参数默认为undefined document.write(y) //同上 var x = 5,y =6; //在此在函数体内声明了两个局部变量x和y document.write(x) //由于js代码是从上到下执行的,此时的x用的是局部变量x document.write(y) //同上 z =x+y //在函数体内声明了一个没有加var的z,此是它是全局变量,但是由是在函数体内赋值,用的x,y都是局部变量 document.write(z) //=>输出结果为11 } demo() alert(z) //由于z是全局变量,还是可以在函数外取到z的值 =>11 alert(x) //=>1 在函数体外得到x,得到的是全局变量x alert(y) //同上 </script>
相关文章推荐
- 【JavaScript】加载音频
- JavaScript中函数的重载
- 利用Device.js判断设备进行网页布局
- javascript中循环函数中的return
- javascript笔记6-DOM
- js 通过function来定义函数
- JS笔记 入门第四
- JS笔记 入门第三
- #学习笔记#(39)JS随机颜色
- 流行 Javascript 库在安装时展示广告
- 理解js闭包(二)
- 理解js闭包(一)
- js 中的流程控制—while和do while
- js实现异步循环
- JavaScript中一个对象进行深度clone
- js 中的流程控制-循环(for)语句
- 使用JavaScript动态的添加组件
- 使用JavaScript动态的添加组件
- JavaScript创建对象之稳妥构造函数模式(七)
- #学习笔记#(38)js轮播图