Javascript常用面试题

分类:Javascript| 发布:camnprbubuol| 查看: | 发表时间:2012/10/24

以下是本人几次面试中出现几率最高的几道题,整理了一下,和大家分享,请批评指正,共同进步。

/*this 的作用域的考察*/
var obj = {
       show: function () {
                     this.display = true;
       },
       hide: function () {
                    this.display = false;
      }
};

obj.show();
alert(obj.display);  // true
alert(window.display);  //undefined

  

/*递归1,1,2,3,5,8,13,21,34,55...求第30位值是多少?*/
function ForValue(num) {
     if (num < 0) {
          return 0;
     }
     if (num == 1) {
          return 1;
     } else {
          return ForValue(num - 1) + ForValue(num - 2);
     }
};
alert(ForValue(10)); //第10位是:55;  第30位的话,会提示(也可能和电脑性能有关)

  

 

/*arguments 的测试*/
function b(x, y, a) {
    /*

     arguments[2] = 10;
     alert(a);  //此2句与下边的2句结果是一样的。

     */
    a = 10;
    alert(arguments[2]);
}
b(1,2,3); // 结果都是 10

 

  

/*编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象*/
function parseQueryString(url) {
     var params = url.substring(url.indexOf('?') + 1);
     var keyValues = params.split('&');
     var obj = {};
     for (var i = 0; i < keyValues.length; i++) {
          var temp = keyValues[i].split('=');
          obj[temp[0]] = temp[1];
     }
     return obj;
}
var obj = parseQueryString('http://camnpr.com/demo.aspx?a=1&b=2&c=3');
alert(obj.a + obj.b + obj.c); //123

  

/*闭包:指有权访问另一个函数作用域中的变量的函数*/
function a(name, age) {  

    return function () {
                  if (name == "camnpr" && age == 24) {
                      return 1;
                 } else {
                      return 0;

                 }

     };
}
var info = a('camnpr', 24);
alert(info()); //1;

 
/*如何点击每一列的时候 alert 其 index ? <ul id="test"><li>这是第一条</li><li>这是第二条</li><li>这是第三条</li></ul>*/
window.onload = function () {
                               var ul = document.getElementById("test");
                               var lis = ul.getElementsByTagName('li');
                               for (var i = 0; i < lis.length; i++) {
                                         lis[i].onclick = function (num) {
                                                                 return function () { //应用了闭包
                                                                           alert(num);
                                                                 }
                                         } (i);

/* 区别于:
lis[i].onclick = function () {
alert(i); // 一直都是3
};*/
                              }
};
 

以上是典型的js面试题,本文还会继续更新,敬请关注!

 

365据说看到好文章不转的人,服务器容易宕机
原创文章如转载,请注明:转载自郑州网建-前端开发 http://camnpr.com/
本文链接:http://camnpr.com/javascript/javascript-mianshi.html