AI智能
改变未来

arguements与变量作用域


arguements与变量作用域

arguements的使用

function getSum(){var s = 0;for(var i = 0,j = arguements.length; i < j; i++){s += arguemengts[i];}console.log(s)}getSum(3,4)//求3+4

用于当前函数的参数,不固定数量时。

arguements.callee // 当前函数arguements.callee.name // 当前函数名字arguements.callee.caller // 调用当前函数的外部函数

arguements是一个arguements对象。

变量作用域

被定义在函数内部的变量,使用范围仅在函数内部。

并且当前函数执行完以后,这个变量会被销毁。

下次函数在执行时会重新定义这个变量,并且变量不能被保存在函数执行后还能使用。

函数内部变量优先局部变量

在局部作用域内(a+window.a)在ES6中被禁止。

如果当前函数内没有定义与全局变量相同的值,则可以调用全局变量,当在作用域中定义变量,则遵照局部优先原则。

当打印变量早于定义该局部变量之前,仍然遵照局部变量优先原则。

在函数中只要看到使用 var 定义的变量,这个变量就一定是局部变量,就一定会被优先。

当在函数中设置了参数,就相当于这个参数是被 var 定义好的局部变量。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » arguements与变量作用域