您的位置:首页 > Web前端 > JavaScript

javascript基础:函数传递参数的方式、参数数组、变量范围(变量作用域)

2017-01-15 21:33 741 查看
一、函数的2种参数传递方式

(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>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: