人人網筆試題

首先,是一個好幾個T字堆起來的圖,要求各個方向重複延伸,不破壞它的單元結構。(要求12分鐘以內完成。)javascript

接着是有7或者8頁的筆試題,最前面有兩道填空題是發散思惟的,下面把此次的筆試題或者交談中的小技術寫下來css

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

   隊列方法 (先進先出)java

var colors=new Array();
var count=colors.unshift('red','green');   //入隊--在數組前端添加
alert(count);   //2
var item=colors.shift();   //出隊--在數組前端刪除
alert(item);    //red;

 

2.用javascript寫出任何一種排序算法jquery

   我採用的是選擇排序web

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表達式的理解和見解??ajax

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

這裏可使用一個特殊的expression函數,其實這是一個javascript的函數。它能夠進行根據一個表達式進行計算,動態地決定background-color的值。算法

看起來是一個至關不錯的功能,但咱們可能不會想到這個表達式會運算不少次(這個具體的次數可能遠遠超過你的想象)express

打開以後,只是鼠標動來動去,或者滾動條上下拖動幾下,就會執行1865次。以下圖所示json

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的運行機制

相關文章
相關標籤/搜索