js函数形参作用域问题

(function e(num){
        var num;
        console.log(num);
        num = 10;
    }(100))

为什么打印出来是100,我的理解是 var num;不是重定义了num变量吗?应该是undefined啊,求大佬指点迷津.

阅读 2.5k
4 个回答

已存在的不会重新声明,忽略 var

你的写法,会将num =100定义在开头啊,所以num有值 了

相当于函数体里面定义了两次 num ,第二次不赋值是不会有效果的

声明语句仅有声明功能,不会自动赋值undefined

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏