• 人人网笔试题


    首先,是一个好几个T字堆起来的图,要求各个方向重复延伸,不破坏它的单元结构。(要求12分钟之内完成。)

    接着是有7或者8页的笔试题,最前面有两道填空题是发散思维的,下面把这次的笔试题或者交谈中的小技术写下来

    1.栈方法(先进后出

    var colors=new Array();
    var count=colors.push('red','green');
    alert(count);   //2
    var item=colors.pop();
    alert(item); //green
    alert(colors.length); //1

       队列方法 (先进先出)

    var colors=new Array();
    var count=colors.unshift('red','green');   //入队--在数组前端添加
    alert(count);   //2
    var item=colors.shift();   //出队--在数组前端删除
    alert(item);    //red;

    2.用javascript写出任何一种排序算法

       我采用的是选择排序

    var arr=[3,9,5,4,2,8];
    var temp;
    for(var i=0;i<arr.length;i++){
         for(var j=i+1;j<arr.length;j++){
              if(arr[i]>arr[j]){
                  temp=arr[i];
                  arr[i]=arr[j];
                  arr[j]=temp;      
              }
         }    
    }
    console.log(arr);   //[2,3,4,5,8,9] 

    3.什么是css表达式,以及对css表达式的理解和看法??

        <style>
            body {
                background-color: expression((new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
            }
        </style>

    这里可以使用一个特殊的expression函数,其实这是一个javascript的函数。它可以进行根据一个表达式进行计算,动态地决定background-color的值。

    看起来是一个相当不错的功能,但我们可能不会想到这个表达式会运算很多次(这个具体的次数可能远远超过你的想象)

    打开之后,只是鼠标动来动去,或者滚动条上下拖动几下,就会执行1865次。如下图所示

    image

    很显然,这是很可观的一些成本。这还是比较简单的表达式,试想一下,如果有更加复杂的表达式呢?这些函数需要一次一次的执行,毫无疑问地会拖累页面执行的效率,乃至浏览器的性能。

    正因为如此,不光是其他浏览器都不支持,同时w3c标准组织也不支持这种方式。鉴于此,微软方面也于2008年(彼时发布了IE 8)的时候,正式终止了对这种功能的支持。

    文中提到的三点不再支持CSS表达式的原因,显然是很中肯的(更加符合标准,更加有利于性能提升,以及减少受攻击面

    那么如果我们真的希望实现动态的CSS,怎么办呢?例如上面这个例子,我们希望根据当前的时间,来决定显示什么背景颜色。(小时为单数时显示一种颜色,为复数时显示另外一种颜色)。

      <script src="Scripts/jquery-2.0.0.min.js"></script>
        <script>
            $(function () {
                $("body").css("background-color", (new Date()).getHours() % 2 ? "#B8D4FF" : "#F08A00");
            });
        </script>

    4.写出ie的bug,至少写出5种,并写出解决方案(内容见“ie6 bug详谈”文档)

       1.双边距  2.ie6下文字溢出   3.3像素   4.li下面空白行   5.png不透明的问题

    5.每次随机返回数组中的一个值

      Math.floor(Math.random()*数组长度+第一个可能的数)

    6.继承

       Person类有name,age属性。如何让Programmer类继承name,age,sex,language

    7.写出prepand,跟appendChild的相反

    8.给出一个json串,输出像模板一样的语句

    9.

    var num=100;
    var obj={};
    function sum(arg){
       age=20;
    }
    function other(obj){
        obj=20;
    }
    sum(num);
    other(obj);
    alert(num);    //100
    alert(obj);    //object

    10.从浏览器,代码结构谈谈性能。并说出你是如何进行web性能优化的。

    11.jsonp原理,获取ajax的方式,get和post的区别

    12.javascript是单线程吗?如果是单线程如何实现多线程

    13.javascript的运行机制

  • 相关阅读:
    Unity Technologies-提供全面的技术支持服务
    Unity 大中华区核心业务
    帕斯卡(pascal)命名法:
    骆驼命名法
    匈牙利命名法
    软件分类
    模型规范
    命名规范
    22. Generate Parentheses 生成括号
    421. Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或
  • 原文地址:https://www.cnblogs.com/positive/p/3620458.html
Copyright © 2020-2023  润新知