提升
函数声明提升
但是
函数优先提升
隐式参数(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
也在此形成了一个闭包