zoukankan      html  css  js  c++  java
  • 前端面试题部分总结

    var test = (function(a){
          this.a = a;return function(b){
             return this.a + b;
          }
        }
        (function(a,b){
          return a;
        }(1,2))
        
    );
    console.log(test(4)); 

    昨天面试遇到这个题,当时答错了,回来运行了一遍是5,又仔细看了看,原来如此,现分析如下,

    (funtion(a,b){

         return a;

    }(1,2))这段代码 是1 

    因而 test可以简写为 var test=(function(a){

      this.a=a;

    return function(b){

      return this.a+b;

    }

    }(1))

    1带入test中 所以 this.a 是1 然后 console.log中test(4)带入4,b就为4.所以运行结果为5;

    (function(){
    
        var a=b=3;
    })();
    
    console.log(typeof a === 'undefined'); 
    console.log(typeof b === 'undefined'); 

    var a = b = 3; 实际上是:

    b = 3;
    var a = b;
    因此,b最终成为一个全局变量(由于它不在var关键字之前),并且仍然在范围内,甚至在封闭函数之外。

    a未定义的原因是a是自动执行匿名函数的局部变量

    所以第一个console.log是true,第二个是false;

  • 相关阅读:
    Spring三大器
    SpringBoot启动过程
    linux常用命令
    Controller当中的参数与返回值
    Spring加载context的几种方法
    Spring基础(imooc)
    SpringMVC框架学习
    Spring MVC(imooc)
    springAOP基础
    《别傻了,你的中年危机真不是因为穷》
  • 原文地址:https://www.cnblogs.com/jolee/p/7209938.html
Copyright © 2011-2022 走看看