zoukankan      html  css  js  c++  java
  • 你真的会用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

  • 相关阅读:
    reorder-list
    HMM基础
    binary-tree-preorder-traversal
    binary-tree-postorder-traversal
    GMM基础
    (七)打印机驱动设置—认识打印机接口
    (八)打印机驱动设置—串口的设置
    (五)打印机驱动设置—没有开不了的钱箱
    (六)打印机驱动设置—装完驱动后没有打印机图标
    (四)揭开打印机驱动的神秘面纱
  • 原文地址:https://www.cnblogs.com/sunwubin/p/3431693.html
Copyright © 2011-2022 走看看