• 你真的会用javascript?


    偶然在csdn看到几个js的小题,考察的都是很基础的知识,拿来分享一下
    1.

    1
    2
    3
    4
    
    if (!("a" in window)) {
      var a = 1;
    }
    alert(a);

    开始,我以为是1,后来试了下,结果是undefined,仔细看看,也对:js在执行是,会首先提取所有var的新变量,让后给其赋值undefined,并将其加入到当前的执行环境总,比如这里,程序还没执行,实际就有了window.a=undefined,所以“(“a” in window)==true”
    2.

    1
    2
    3
    4
    5
    
    var a = 1;
    var b = function a(x) {
      return x*x;
    };
    alert(a);

    一直以为这种写法会报错,汗颜的是,前段时间去某家公司面试,还碰上了类似的题目,回来也没写写试试。
    实际试了下,这里的alert仍然是1,这种写法,a只在function a的内部是function,但是如果在a内部调用a(x),会递归
    3.

    1
    2
    3
    4
    5
    
    function a(x) {
        return x * 2;
    }
    var a;
    alert(a);

    呵呵,有了第一个题,这个就比较简单了,function
    4.

    1
    2
    3
    4
    5
    
    function b(x, y, a) {
        arguments[2] = 10;
        alert(a);
    }
    b(1, 2, 3);

    这个也简单,arguments[2]就是a的替身,a会被修改为10
    5.

    1
    2
    3
    4
    
    function a() {
        alert(this);
    }
    a.call(null);

    这里考察的是call的使用,正常call的参数是什么,里面的this就是什么(我也是这么理解的),但是关于call还有一条说明:如果call的参数是null或者undefined,里面的this仍然是当前执行环境,即window

  • 相关阅读:
    project3 blockchain
    RESTful Web服务与“大”Web服务: 做出正确的建筑决策
    project2
    LAB4
    云计算的描述性文献综述与分类研究
    SQL常见面试题(学生表_课程表_成绩表_教师表)
    等价类划分经典实例-三角形测试用例设计
    搜索框功能测试分析
    B/S结构-登录页面-测试用例设计
    软件测试面试--常用基本控件测试用例
  • 原文地址:https://www.cnblogs.com/sunwubin/p/3431693.html
Copyright © 2020-2023  润新知