js中形参的小练习

es6没怎么看懂,我想把回调看看,看到了关于函数形参很有意思的地方

        var e = 23
        function fun(e){
            console.log(e)
        }
        fun()

这里调用函数时没有传参,但是声明函数时传入了一个形参e,那么结果是多少呢?

结果是:undefined

当调用函数时,如果函数中形参,会默认的在函数内部声明了一个变量var e,但是并没有赋值,所以代码应该变成了个样子

        function fun(e){
            var e
            console.log(e)
        }
        fun()

这样的结果就是undefind

还有2个练习,巩固一下基础...

        var a = 123
        function fun(a){
            alert(a)
            a=456
        }
        fun()
        alert(a)

第一个是undefined  第二个是123

声明变量所以undefined,之后又赋值成了456,但是是在函数内部,外部无法访问

        var a = 123
        function fun(a){
            alert(a)
            a=456
        }
        fun(123)
        alert(a)

第一个是123  第二个是123

讲了这么多我就是想告诉大家一句话

定义形参就相当于在函数作用域中声明了变量

...

原文地址:https://www.cnblogs.com/xufeng1994/p/10372421.html