十、常见的面试题

50 阅读1分钟

1 this的指向

 var length = 10;
       function test() {
           console.log(this.length)
       }
       var obj = {
           length: 100,
           action: function(test) {
               test();
               arguments[0]()
           }
       }
       obj.action(test, 1,[2,3], 4)

    //    10 4

2 作用域的坑

var a = 10
     function test(){
        console.log(a)
        a = 100
        console.log(this.a)
        var a;
        console.log(a)
     }
     test()
     // undefined 10 100
     // 分析过程
     var a;
     function test() {}
     a = 10
     test()
    // 局部作用域解析 
     var a; // 如果全局变量和局部变量重名,全局变量不会作用域局部变量的作用域
     console.log(a) // undefined
     a = 100
     console.log(this.a) // window.a 10
     console.log(a) // 局部变量的a 100

3

  var a = 10
        function fa() {
            var b = 2 * a;
            var a = 20;
            var c = a + 1
            console.log(b)
            console.log(c)
        }
        fa()