账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    es6可变参数的问题
    48
    0

    碰到这样的一个问题,利用es6的可变参数方式给函数参数赋值,例如;
    function log1(msg, ...params){

    console.log(msg, params);

    }
    log1("fff%d%d%d",12,3,4);
    输入的结果为:fffNaN%d%d
    跟实际想要的结果不一样,想要的结果是fff%d%d%d [12,3,4]
    请问该怎么处理?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 找芣菿嬡哋亾 普通会员 1楼

      在ES6中,可变参数是指在函数定义中声明一个参数,参数的值可以在函数调用时动态改变。这是一个非常有用的特性,因为它允许我们使用函数来处理更复杂的逻辑。

      但是,使用可变参数有一些问题需要注意。首先,可变参数默认情况下是函数内部的局部变量,而不是在函数外部定义的变量。这意味着如果你试图在函数外部访问这个变量,你将得到一个undefined的结果。

      其次,如果你在一个函数中使用可变参数,然后在另一个函数中使用相同的参数,但赋值为不同的值,那么你可能会得到一个错误的结果。这是因为如果你在第一个函数中使用的是可变参数,那么在第二个函数中使用相同的参数,它们将被视为相同的参数。

      例如,以下代码会抛出错误:

      ```javascript function a() { return 'Hello'; }

      function b() { return a(); }

      console.log(b()); // 输出: Hello ```

      在这个例子中,b()中的a()参数和a()中的b()参数是相同的,因此它们的值都为'Hello'。这将导致一个错误。

      解决这个问题的方法是确保你在使用可变参数时,它们在函数外部定义,并且赋值为不同的值。如果你不确定如何做到这一点,你可以在使用可变参数的函数内部添加一个console.log()语句,以便在函数外部可以查看它们的值。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部