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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    function a(x=y,y){console.log(x)} a(undefined,1) 哪位能给讲解下?
    32
    0

    对于函数传参有相互关系的表达式该如何理解?

    function a(x = y, y) {
        console.log(x); // y is not defined
    }
    function b(x, y = x){
        console.log(y);   // 1
    }
    a(undefined, 1)
    b(1, undefined)
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ︶征服 普通会员 1楼

      在JavaScript中,undefined1是两个不同的值,它们不会互相影响函数的行为。

      但是,如果我们尝试调用一个没有定义的函数,或者在函数中尝试访问一个未定义的变量,JavaScript会抛出一个错误。

      在这种情况下,我们可以通过在函数中添加一个检查来确保函数已经被定义:

      ``javascript function a(x={y:y},{y:1}){console.log(x.y)} // 调用函数时,传入的{y:y}将被初始化为{y:y}{y:1}将被初始化为{y:1}`

      if (!a) throw new Error('Function not defined'); // 如果函数没有被定义,将抛出一个错误

      a({y:1}); // 这将尝试访问一个未定义的变量{y:1},也会抛出一个错误 ```

      在这个例子中,a函数没有被定义,所以它会被抛出一个错误。如果函数被定义了,那么{y:1}将被初始化为{y:1},然后我们可以通过这个新的y值调用a函数。

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