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

  • 相关阅读:
    素数个数(素数➕dfs)
    最小正子段和
    set<int> 的用法
    C
    map的用法
    B
    威佐夫博弈
    Stars(树状数组)
    upper_bound和lower_bound的用法
    超级大水题(还是自己过不了的水题)
  • 原文地址:https://www.cnblogs.com/sunwubin/p/3431693.html
Copyright © 2011-2022 走看看