2017美團&網易&360部分筆試題

1、美團筆試

問答題:

1.JavaScript把一個參數從頁面A傳遞給頁面B,進行某些操做,而後由頁面B回傳給頁面A
 
2.各類排序算法的時間複雜度:冒泡排序,選擇排序,插入排序,快速排序,歸併排序,堆排序。
 

編程題:

找出兩個有序數組的公共元素,例:有序數組[3, 5, 7, 8, 10, 12]和有序數組[15, 10, 8, 7, 4, 3, 1]的公共元素爲(8, 10)
 
待解答

2、樂視電面

1.css垂直居中怎麼實現
主要幾種方式:(1) 使用絕對定位absolute,top:50%;和負外邊距margin-top:-(自身高度一半);對塊級元素進行垂直居中
(2)使用絕對定位absolute,top:50%;和transform:translate:0,-50%
(3)絕對定位結合margin: auto,固定寬高,top: 0; bottom: 0; margin: auto;
(4)父元素是不設置高度,給父元素設置相等的上下內邊距,讓它自動被填充起來,子元素就實現了垂直居中的
(5)使用 line-height 對單行文本進行垂直居中
(6)使用table,table cells的vertical-align:middle能夠實現垂直居中
(7)設置display:flex;將其指定爲flex佈局的容器,再爲其添加align-items:cnter屬性
2.講一下css的盒模型

在標準盒子模型中:css

如圖:325x146即是寬高width*height,即內容框的寬高,並不包含padding和border。這是標準盒模型的狀況,但還存在另外一種ie盒子模型,ie盒子模型即是把padding與border包含在寬高內,即寬高包含了內容框的寬高加上padding與邊框。通常狀況下,ie瀏覽器會使用ie盒子模型,其它如ff、chrome則使用標準盒子模型。若是要統一使用標準盒子模型,咱們能夠在網頁中加入doctype申明使用w3c標準,這樣全部瀏覽器都會使用標準盒子模型。
在 CSS 中,width 和 height 指的是內容區域的寬度和高度。增長內邊距、邊框和外邊距不會影響內容區域的尺寸,可是會增長元素框的總尺寸。
3.ajax有哪些請求方式,區別
ajax
ajax 請求
$.ajax(url,[settings]) 
load(url,[data],[callback]) 
$.get(url,[data],[fn],[type]) 
$.getJSON(url,[data],[fn]) 
$.getScript(url,[callback]) 
$.post(url,[data],[fn],[type]) 
ajax 事件
ajaxComplete(callback) 
ajaxError(callback) 
ajaxSend(callback) 
ajaxStart(callback) 
ajaxStop(callback) 
ajaxSuccess(callback) 
其它
$.ajaxSetup([options]) 
serialize() 
serializearray()

區別參考:jQuery中ajax的4種經常使用請求方式html

4.用過哪些新的框架?angular.js,vue等
 

3、網易在線筆試

選擇題

1. HTTP狀態碼中301與302的區別
301 redirect: 301 表明永久性轉移(Permanently Moved)。
302 redirect: 302 表明暫時性轉移(Temporarily Moved )。 前端

2.HTTP請求類型
HTTP協議的8種請求類型介紹
HTTP協議中共定義了八種方法或者叫「動做」來代表對Request-URI指定的資源的不一樣操做方式,具體介紹以下:vue

OPTIONS:返回服務器針對特定資源所支持的HTTP請求方法。也能夠利用向Web服務器發送'*'的請求來測試服務器的功能性。
HEAD:向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法能夠在沒必要傳輸整個響應內容的狀況下,就能夠獲取包含在響應消息頭中的元信息。
GET:向特定的資源發出請求。
POST:向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的建立和/或已有資源的修改。
PUT:向指定資源位置上傳其最新內容。
DELETE:請求服務器刪除Request-URI所標識的資源。
TRACE:回顯服務器收到的請求,主要用於測試或診斷。
CONNECT:HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。git

3.css中表示字體的屬性是?github

* font-style
* font-variant
* font-weight
* font-size/line-height
* font-family面試

font-family 規定字體系列ajax

4.元素入棧順序爲1,2,3,...,7,可能的出棧順序有幾種?算法

2n!/((n+1)n!n!)

5.元素入棧順序爲1,2,3,4,5,出棧順序爲2,3,1,5,4,則棧的大小至少爲?chrome

2;解答:1進棧,2進棧,2出棧;3進棧,3出棧;1出棧;4進棧,5進棧,5出棧;4出棧;由此可知,棧裏面最多有2個元素。

6.0到999999共有多少個3?

問答題:

給出一個table,點擊成績,全部行按照成績從小到大排序,再次點擊按照從大到小排序?

待解答

編程題:

待補充

4、360筆試

選擇題

1.Math.round(1.15)+Math.round(-1.15),輸出結果是多少?

JavaScript中 round() 方法可把一個數字舍入爲最接近的整數。輸出結果爲0。

2.給出width、margin、border、padding,求document.body.clientWidth=?

document.body.clientWidth爲網頁可見區域寬,document.body.clientWidth = width + padding*2 + border*2 + margin*2;

3.針對二分查找,數組1,3,5,……21,查找21的過程爲
 二分算法:
二分查找算法: 
public static int binarySearch(Integer[] srcArray, int des) {
    int low = 0;
    int high = srcArray.length - 1;
 
    while ((low <= high) && (low <= srcArray.length - 1)
            && (high <= srcArray.length - 1)) {
        int middle = (high + low) >> 1;
        if (des == srcArray[middle]) {
            return middle;
        } else if (des < srcArray[middle]) {
            high = middle - 1;
        } else {
            low = middle + 1;
        }
    }
    return -1;
}

查找過程爲:11>>17>>19>>21

4.有一個B類IP地址爲140.128.0.0,要劃分爲10個子網,而且要所有能連上網絡,子網掩碼應該爲多少?
 每一個IP地址都有一個網絡部分,用於識別接口使用的IP地址在哪一個網絡中可被發現,以及一個主機地址,用於識別由網絡部分給出的網絡中的特定主機。A類IP地址以0開頭,網絡號爲8位,B類IP地址以10開頭,網絡號爲16位,C類IP地址以110開頭,網絡號爲24位。子網劃分是將IP地址中的主機號進一步分爲子網ID+主機ID兩部分,爲了讓路由器肯定地址中的子網部分和主機部分,須要給出子網掩碼。子網掩碼與對應的IP地址長度相同,網絡/子網部分對應位爲1,主機部分對應位爲0。題目中要求劃分10個子網,則子網部分至少爲4位(2^4 = 16),B類IP地址網絡號16位,加上4位子網號,網絡部分共20位,因此子網掩碼應爲11111111.11111111.11110000.00000000,即255.255.240.0
5.一個公司中,前端工程師佔0.5,後端工程師佔0.4,全棧工程師佔0.25,問不是工程師的有多少
畫圖解答

6.一個關於HTTP內容協商的選擇題

7.哪些哪些數能夠組成一個堆?

8.關於一個m階B樹說法正確的是

9.0xff^33=?

^爲位運算符異或運算符(XOR)

異或運算將兩個運算份量的對應位按位遵守如下規則進行計算:
     0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0
即相應位的值相同的,結果爲 0,不相同的結果爲 1。

也可理解爲不帶進位的二進制加法運算

10.有6個顧客同時等待同一服務,6個顧客所需時間分別爲:100,50,20,60,30,40,求每一個顧客平均等待時間

11.文件系統管理的最小磁盤空間單位是()A.扇區 B.頁面 C.簇 D.文件

12.下面代碼運行的結果是?

var a = 100;
function a() {
      console.log(a);    
}
a();

經測試,這個串代碼執行完會報錯 : a is not a function

若是alert(typeof a)結果會是number

爲何會這樣呢?

由於在預解析中

(1)變量聲明會置頂

(2)函數聲明也會置頂

(3)函數聲明比變量聲明更置頂

(4)變量和賦值語句一塊兒書寫,在js引擎解析時,會將其拆成聲明和賦值2部分,聲明置頂,賦值保留在原來位置

(5)已經聲明過的變量不會重複聲明

所以,以上代碼執行過程爲:

首先聲明函數a,function a();而後聲明變量a,在這一步,變量a覆蓋了上面的函數a。因此,調用函數a()時會是undefined,由於此時已經沒有了函數a。

以上代碼等同於:

var a=function (){
  console.log(a);
}
var a=100;
a();

 

編程題:

 360春招&實習生招聘3.25在線編程題解

 
面試常問的問題:Tcp/IP三次握手四次分手過程,Http 協議
 
筆試中有不少排列組合和機率論問題
 
360投的前端,選擇題後面全是C++題,運算符重載,括號運算符等等
 

4、騰訊在線筆試

選擇題:

1.如下說法正確的有哪些?
A.若是元素的display爲none,那麼元素不被渲染,position,float不起做用
B.若是元素擁有position:absolute,或者position:fixed;屬性那麼元素將爲絕對定位,float不起做用。
C.若是元素float屬性不是none,元素會脫離文檔流,根據float屬性值來顯示有浮動,絕對定位
D.inline-block屬性的元素,margin會和垂直方向上的其餘元素margin摺疊。
 
2.如下代碼執行結果:
1 'use strick' 
2 (function(){ 
3     var a=b=5    
4 })(); 
5 console.log(b); 
6 console.log(a); 

運行結果:Uncauht ReferenceError:a is not defined at 6

 
3.如下代碼執行結果:
function a(){
    alert(x);
    var x=2;
    x++;
    alert(x);
}
function b(){
    alert(x);
    x++;
    alert(x);
}
if(0<100<(0+4)){
    a();
}else{
    b();
}

運行結果:undefined,3

 
4. 如下代碼執行結果:
var a=1;
setTimeout(function(){console.log(a)},0);
var date1 = new Date();
while((new Date().getTime()-date1.getTime())<=10000){};
console.log(a);
a='2';

幾乎同時輸出1和2

 
5.如下程序可能的輸出順序
window.setTimeout(function(){console.log("1")},1);
window.setTimeout(function(){console.log("2")},2);
window.setTimeout(function(){console.log("2")},3);
window.requestAnimationFrame(function(){console.log("4")},4);

A.1,2,3,4

B.4,1,2,3
C.1,2,4,3
D.1,4,2,3
答案:ABCD
 
6.HTTP2.0新特性
 
7.現行鏈表中,表頭元素必定是存儲在其餘元素的前面嗎?
 
8.對IP數據報分片的重組一般發生在(目標主機)上
 
9.UDP數據頭包含什麼
 
10.Cookie的缺點
 
11.Struct和Class的區別
 
12.減小使用HTTP請求數量的方式
 
13.線程和進程的同步機制
 
 
 

問答題:

1.大型金融網站優化從哪裏入手
2.從URL輸入到頁面展示發生了什麼?
 
 

編程題:

1.求數字在排序數組中出現的次數
相關文章
相關標籤/搜索