函数作用域,闭包,数据类型的题目

第一题:函数作用域和闭包

var a = 9
function fn(){
    a = 0
    return function (b){
        return b+a++
    }
}
var f = fn()
console.log(f(5))
console.log(fn()(5))
console.log(f(5))
console.log(a)

这题要注意函数中的a是隐式全局变量,要注意下这个隐式全局变量在什么时候执行,返回的函数b并不需要执行 a = 0,a++是在执行过之后让a+1

所以但答案是:

5
5
6
2

第二题:关于数据类型传值和传址

var ary = [1,2,3,4]
function fn(ary){
    ary[0] = 0
    ary = [0]
    ary[0] = 100
    return ary
}
var res = fn(ary)
console.log(ary)
console.log(res)

形参和实参要注意区分一下,他们两人之间没有直接的关系,但是有间接的关系

答案是

[0, 2, 3, 4]
[100]

猜你喜欢

转载自www.cnblogs.com/xufeng1994/p/10444746.html