javascript基础:函数传递参数的方式、参数数组、变量范围(变量作用域)
2017-01-15 21:33
741 查看
一、函数的2种参数传递方式
(1)传值:把变量的值传入函数,函数不会另外分配内存保存值,所以不会改变原始值,一般适用于传入 数字、布尔值、字符串。
(2)传地址:把变量保存的内存地址传入,如果在函数中改变了值,原始值也会被改变。用于传入对象、数组、函数、字符串对象。
二、函数的参数数组、变量范围
javascript的函数,都有一个参数数组,也就是arguments对象,保存了传入函数的初始参数值。
javascript的变量范围包括:全局变量、函数内的局部变量。不过,在函数内也能引用全局变量,比如下面代码中的变量C,可以在函数内修改。
(1)传值:把变量的值传入函数,函数不会另外分配内存保存值,所以不会改变原始值,一般适用于传入 数字、布尔值、字符串。
(2)传地址:把变量保存的内存地址传入,如果在函数中改变了值,原始值也会被改变。用于传入对象、数组、函数、字符串对象。
<!doctype html> <html> <head> <meta charset="gb2312"> <title>实验</title> <script language="javascript"> //带2个参数,返回值,a为传值方式,b为传地址方式 function f2(a,b) { b.sellNum = a; b.amount = a* b.price; return b.amount; } //不带参数,无返回值 function f1() { var r; var product = new Object(); product.name = "男士裤衩30#"; product.price = 25.8; product.sellNum = 0; product.amount = 0.0; //传值:10,传地址:product r = f2(10,product); document.write(product.name +'(销量):' + product.sellNum+"<br>"); document.write(product.name +'(销售金额):' + r+"<br><hr>"); //打印出product对象的 属性名称:属性值 //发现数据已经被修改。 for(r in product) document.write("<br>"+r+":"+product[r]); } </script> </head> <body> <script language="javascript"> f1(); </script> </body> </html>
二、函数的参数数组、变量范围
javascript的函数,都有一个参数数组,也就是arguments对象,保存了传入函数的初始参数值。
javascript的变量范围包括:全局变量、函数内的局部变量。不过,在函数内也能引用全局变量,比如下面代码中的变量C,可以在函数内修改。
<!doctype html> <html> <head> <meta charset="gb2312"> <title>实验</title> <script language="javascript"> //全局变量 var a,b,c; a = 10; b = 20; c = 30; //带2个参数,返回值 function f2(a,b,xx,yy,zz) { //局部变量a,覆盖了传入参数a的值 var a = 0; a = 1000; //修改全局变量 c = 200; document.write("f2函数的个数:"+f2.arguments.length); //传入参数的初始值,不会受到全局变量和自定义变量的影响 for (i in f2.arguments ) { document.write("<br>f2函数的第"+i+"个参数的值:"+f2.arguments[i]); } document.write('<br><hr>局部变量'); document.write('<br>a:'+a); document.write('<br>b:'+b); } </script> </head> <body> <script language="javascript"> f2(5,4,3,2,1); //全局变量 document.write('<br><hr>全局变量'); document.write('<br>a:'+a); document.write('<br>b:'+b); document.write('<br>c:'+c); </script> </body> </html>
相关文章推荐
- javascript基础:内置函数、自定义函数
- javascript中的字典
- Three.JS学习 9:WEBVR 入门demo
- js 定义变量的时候 var 和不带var的作用 具体代码演示
- JSP 三 JSTL标签
- js页面跳转并传值的常用方法
- js动画学习笔记
- js点击刷新验证码
- JSTL-格式化标签库
- js-权威指南学习笔记8
- js设计模式准备之继承篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇
- JSTL 和 EL 的简单理解篇