zoukankan      html  css  js  c++  java
  • So, you think you know JavaScript?

    Baranovskiy
     
    题目一:
     
    if (!("a" in window)) {
        var a = 1;
    }
    alert(a);
    答案:undefined
    关键点:js的所有变量自动提前声明
               全局变量挂载在window下
     
     
    题目二:
     
    var a = 1,
        b = function a(x) {
            return x && (x + a(--x));
        };
    alert(a);
    答案:1
    关键点:函数声明与函数表达式的区别;
               函数声明会覆盖变量声明但不会覆盖变量赋值;
               声明的函数名与函数表达式的别名优先放在函数的作用域中;
    其他:执行b(2)得到3
    延伸:
    var a = 1;
    function a(x) { return x && (x + a(--x)); };
              a依然是1,a(2)会报错“TypeError: number is not a function
              补充:解析时先提前声明后赋值,函数声明覆盖变量声明
              再延生:
    var a;
    function a(x) { return x && (x + a(--x)); };
             执行a(2)得到3,a++得到NaN,
             将var a;移到最后依然得到同样的结果。          
     
    题目三:
    function a() {
        alert(this);
    }
    a.call(null);a.call({});
             答案:[object Window]、[object Object]
             关键点:call的this指定功用
                        null将被无视,同样的还有undefined
     
  • 相关阅读:
    直线型一阶倒立摆5---硬件平台搭建
    PE view---重要参数--C语言实现
    A1132. Cut Integer
    A1131. Subway Map (30)
    A1130. Infix Expression
    A1129. Recommendation System
    A1128. N Queens Puzzle
    A1127. ZigZagging on a Tree
    A1126. Eulerian Path
    A1125. Chain the Ropes
  • 原文地址:https://www.cnblogs.com/longze/p/3665922.html
Copyright © 2011-2022 走看看