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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在函数的作用域中,又有传参又有var 新的声明且变量名字一样的时候该以哪一个优先级高?
    55
    0

    <script>
    var a=1
    function fn1(a){//教程中介绍:此处传参a就相当于在函数中var a
    var a=3+a//问题1:此处重新var a是吧传参处声明的a重新清空并覆盖掉吗?问题2:对于传参处声明的var a和此处声明的var a有声明区别吗,它们两者的关系,和js解读的逻辑请详细讲解下。
    alert(a)
    var a=8//问题3:此处重新var a是吧传参处声明的a重新清空并覆盖掉吗?还是前面的var a=3+a,a重新清空并覆盖掉吗?

               alert(a)

    }
    fn1(4);
    alert(a)
    </script>
    问题1:此处重新var a是吧传参处声明的a重新清空并覆盖掉吗?
    问题2:对于传参处声明的var a和此处声明的var a有声明区别吗,它们两者的关系,和js解读的逻辑请详细讲解下。
    问题3:此处重新var a是吧传参处声明的a重新清空并覆盖掉吗?还是前面的var a=3+aa重新清空并覆盖掉吗?
    问题4:在函数的作用域中,又有传参又有var 新的声明且变量名字一样的时候预解析该以哪一个优先级高?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • .飛〇 普通会员 1楼

      在JavaScript中,函数的作用域(scope)是由其定义位置决定的。如果一个函数定义在window对象的上下文中,那么它就属于全局作用域。如果一个函数定义在函数调用的上下文中,那么它就属于局部作用域。

      对于传参和var声明,它们都在不同的作用域中。

      1. 传参:当函数定义在一个变量中,这个变量的作用域就是这个函数。如果在函数调用时传入了参数,那么这个参数就属于这个函数。如果函数没有声明这个参数,那么这个参数就是全局变量。

      2. var声明:var声明的作用域是函数外部,也就是说,它是在所有函数外部定义的变量。var声明的变量可以被函数外部访问,也可以被函数内部访问。

      如果一个函数在它的定义位置被声明为全局变量,那么在函数调用时传入的参数就会属于这个全局变量。如果一个函数在它的定义位置被声明为局部变量,那么在函数调用时传入的参数就不会属于这个局部变量。

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