提升
函数声明提升

但是
函数优先提升

隐式参数(arguments)
在JavaScript 函数有个内置的对象 arguments 对象。
argument 对象包含了函数调用的参数数组。
例如函数本身是无参的,但我们硬要传实参
我们查看结果:
将其展开
所以我们知道了,其实这个对象的作用就是按顺序依次来存实参的,很像数组但却不是,所以叫类数组对象,自然也就不能调用数组方法。
不过我们依然可以按下标访问某一项

特性应用
传入任意个参数,计算它们的和
简化代码<body><script>function fun(){var sum = 0;for(var i=0;i<arguments.length;i++)sum+=arguments[i];console.log('所有参数的和是'+sum);}fun(33,44,55,66);</script></body>

IIFE(立即调用函数表达式)

注解:statements表示任意语句,形式代替下。

它的作用就是更加简便
如:

在例如:
不管哪个元素都是5

也在此形成了一个闭包
