zoukankan      html  css  js  c++  java
  • JavaScript试题【解析+答案】

      偶然看到javascript试题,整理了一下,转于下,日后好好研读。

      在线测试,参考网页http://perfectionkills.com/javascript-quiz/

      答案位于文章底部

    1. 

     (function(){    
      return typeof arguments; })();
     
    问自动执行函数会返回什么值?
    // 就是考Arguments对象的typeof,看平时用firebug多不多了……   

    2.

      var f = function g(){ return 23; };
      typeof g(); 
    //问最后一行的执行结果 
    
    //根据标准,命名函数表达式的函数名只对函数体内可见,因此报错
    ------------------------------------------------

      博主经营一家发饰淘宝店,都是纯手工制作哦,开业冲钻,只为信誉!需要的亲们可以光顾一下!谢谢大家的支持!
    店名:
      小鱼尼莫手工饰品店
    经营:
      发饰、头花、发夹、耳环等(手工制作)
    网店:
      http://shop117066935.taobao.com/

      ---------------------------------------------------------------------

    继续正题... 

      

    3.

      (function(x){
        delete x;
        return x;
      })(1); 
    //问自动执行函数会返回什么值  
    // 参数不可删除  ,1

    4.

      var y = 1, x = y = typeof x;
      x; 
    //问最后一行的执行结果 
    //声明两个变量x与y,y最初赋为1,x没有赋值,默认赋给window的一个属性undefined,
    //因此typeof undefined为"undefined",最后x= y= "undefined" 

    5.

      (function f(f){
        return typeof f();
      })(function(){ return 1; }); 
    //问自动执行函数会返回什么值  
    //函数名被优先级更高的参数名覆盖了 -, 
    (function (f){   
      return typeof f();  
    })(function(){ return 1; }); 
    typeof 1 ---> "number"  

    6.

      var foo = {
        bar: function() { return this.baz; },
        baz: 1
      };
      (function(){
        return typeof arguments[0]();
      })(foo.bar); 
    //动执行函数会返回什么值 ? 
    我们把下面那个自动执行函数分解一下  
    var a = function(){  
      return typeof arguments[0]();
    };  
    a(foo.bar)
    执行完arguments[0](),即得到this.baz 
    由于this变量在此绑定失效,它指向window,window有bax变量吗?  没有,返回"undefined"  

    7.

      var foo = {
        bar: function(){ return this.baz; },
        baz: 1
      }
      typeof (f = foo.bar)(); 
    //后一行的执行结果?
    我们把最后一行分解一下  
    window.f  
    f= foo.bar  
    f()  
    typeof f()  
    返回"undefined" 

    8.

      var f = (function f(){ return "1"; }, function g(){ return 2; })();
      typeof f; 
    //最后一行执行结果?
    首先要理解分组选择符,最后a会赋给什么呢?  
     var a = (1,2,3);  
     alert(a) ---> 3  
    那么这就简单了,f = function(){return 2};
    typeof f() ---> number 

    9.

      var x = 1;
      if (function f(){}) {
        x += typeof f;
      }
      x; 
    //x的值
    函数声明只能裸露于全局作用域下或位于函数体中。  
    从句法上讲,它们不能出现在块中,例如不能出现在  if、while 或 for 语句中。因为块只能包含语句,  
    因此if()中的f函数不能当做函数声明,当成表达式使用
    可能在预编译阶段做了如下处理  
    if((XXX = function(){}))  
    因此我们是找不到f的 , 1,undefined  

    10.

      var x = [typeof x, typeof y][1];
      typeof typeof x; 
    //最后一行执行结果?
    数组其实就是这个样子["undefined","undefined"]
    "string"  

    11.

      (function(foo){
        return typeof foo.bar;
      })({ foo: { bar: 1 } }); 
    //自动执行函数的返回值?
    分解一下  
     var bb = { foo: { bar: 1 } }  
      (function(j){  
        return typeof j.bar  
     })(bb)  
     "undefined"  
    注意那个对象只有foo属性,没有bar属性

    12.

      (function f(){
        function f(){ return 1; }
        return f();
        function f(){ return 2; }
      })(); 
    //自动执行函数的返回值?
    函数声明会在预编译阶段被提前 ,2  

    13.

      function f(){ return f; }
      new f() instanceof f; 
    //最后一行结果?
    由于函数f会返回自身,这个new 就形同虚设
    如果f的形式为 function f(){return this}或function f(){}就不一样 
    false  

    14.

      with (function(x, undefined){}) length; 
    //求length的值?
    with就是一个读写器,题意是取出函数的length属性 
    而函数的length就是指它形参的长度 ,2  
    

      

    答案:ADADA  AABCB  ABB

  • 相关阅读:
    Android压缩图片到100K以下并保持不失真的高效方法
    Android 动画学习笔记
    JAVA jdbc连接Mysql
    android 在myeclipse中查看源码
    Intent用法总结
    Android中加载数据库到data/data下的当前包中
    Android Paint类介绍
    经典常用SQL语句大全
    android 语音识别技术
    Insert multi user or more than one user in SharePoint list Person or Group field
  • 原文地址:https://www.cnblogs.com/qiongmiaoer/p/javascript_Quiz.html
Copyright © 2011-2022 走看看