JavaScript的函数参数详解

我们都知道全局变量可以在任何地方调用,局部变量只能在函数内部调用。今天突然想到一个问题,函数中的参数没有用var声明,那么它究竟是局部变量还是全局变量,我做了如下实验:

var i = 2;

function test(i) {
    i = 5;
    console.log(i) // 5
}
test(10);
console.log(i) //2

由此可知,函数的参数是局部变量,在函数内部修改不会影响外部。
那么如果我想在函数内部修改全局变量i呢?可以用window.i ,因为全局变量都是全局对象window的属性,如下:

var i = 2;
function test(i) {
    window.i=5;
    var foo = 3;
    bar = 4;
    console.log(i) // 10
}
test(10);
console.log(i) //5

然后我又想到一个问题,如我在函数定义的时候没有定义参数,那么我在调用的时候可以传参数吗?如果可以如何使用传递的参数?如下代码:

function test() {

    console.log(arguments) // 
}
test(10,"abc",{a:1});

可以通过argument对象获取参数,让我们来看看打印出了什么:
这里写图片描述
知道怎么调用了,完事。

如有错误,敬请指正。谢谢。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值