美文网首页
成长(4/2000)——面试题合集1

成长(4/2000)——面试题合集1

作者: Kiki_Q | 来源:发表于2021-06-07 23:46 被阅读0次

    Javascript

    1.作用域

    概念:

    作用域分全局作用域和函数作用域

    预编译

    js的两个阶段,预编译和解释执行。

    解题方法

    第一阶段,作用域的创建阶段,即预编译阶段,他做了哪些事情?

    要点:在函数作用域的创建阶段会有一个变量对象,也称AO对象。这个对象我们无法访问,仅供js引擎自己去访问

    1.创建AO对象
    2.找形参和变量的声明,作为AO对象的属性名,值是undefined
    3.实参和形参相统一
    4.找函数声明,如果有变量名称相同,会覆盖变量的声明

    实例演示

    function fn(a,c) {
        console.log(a); //function a() { }
        var a = 123;
        console.log(a); //123
        console.log(c); //function c() { }
        function a() { }
        if(false) {   
            var d = 678;  //false不执行
        }
        console.log(d); //undefined
        console.log(b); //undefined
        var b = function () { }; //函数的表达式,非函数声明
        console.log(b); //function () { }
        function c() { } 
        console.log(c); //function c() { } 
    
    }
    
    fn(1, 2) 
    // 解题思路
    
        //预编译阶段
        //a,c 形参
        AO = {
            a : undefined, //1 //function a() { }
            b : undefined,
            c : undefined, //2 //function c() { }
            d : undefined 
        }
    
        //解释执行阶段 (逐行执行)
    
    1.
    
    var a = 12
      function fn() {  
      console.log(a) 
       var a = 45;  
      console.log(a)  
    }
    fn()
    2.
    function fn() {  
      console.log(11)  
        function ff() {    
        console.log(22)  
      }  
      ff()
    }
    fn()
    3.
    function fn() { 
      console.log(5)  
    
      fn()  
    }
    fn()
    4.
    var a = 123;
    
      function fun() {
        alert(a);
      }
      fun();
    5.
    var a = 123;
    
      function fun() {
      alert(a);
      var a = 456;
      }
      fun();
    alert(a);
    6.
    var a = 123;
    
      function fun(a) {
        alert(a);
        a = 456;
      }
      fun();
    alert(a);
    7.
    var a = 123;
    
      function fun(a) {
          alert(a);
          a = 456;
    }
    fun(123);
    alert(a);
    8.
    function test(a, b) {
      console.log(a);
      console.log(b);
      var b = 234;
      console.log(b);
      a = 123;
      console.log(a);
    
      function a() {}
      var a;
      b = 234;
      var b = function() {}
      console.log(a);
      console.log(b); 
    }
    test(1);
    9.
    function fn(a) {
      console.log(a);
      var a = 123;
      console.log(a);
    
    function a() {}
    console.log(a);
    var b = function() {}
    console.log(b);
    
    function d() {}
    }
    fn(1);
    10.
    function fn() {  
    
      console.log(12)
    }
    var as = fn()
    
    console.log(as)
    
    11.
    function fn() {  
    console.log(12)  
    
    return 45;  
    console.log(456)  
    }
    
    fn()
    12.
    var a = 12; 
    function fn() {  
    console.log(a)  
    
    return 4;  
    var a = 45;
    }
    
    fn()
    13.
    var a = 100; 
    function testResult() {  
      var b = 2 * a  
      var a = 200  
      var c = a / 2  
    
      alert(b)  
    
      alert(c)
    }
    testResult()
    

    相关文章

      网友评论

          本文标题:成长(4/2000)——面试题合集1

          本文链接:https://www.haomeiwen.com/subject/kqeleltx.html