小公尺 前端面經

2022-09-08 17:27:14 字數 2741 閱讀 7411

二分查詢,返回查詢元素的索引

function binary_search(arr,low,high,key)

var mid = parseint((high+low)/2);

if(arr[mid] ==key)else if(arr[mid] >key )else if(arr[mid] >key)

}var arr = [1,2,3,4,5,6,7,8,9,10,11,27,44,86];

var result0 = binary_search(arr, 0, 13, 44);

console.log(result0);

寫乙個排序演算法(快排)
var quicksort = function(arr) 

var pivotindex = math.floor(arr.length / 2);

var pivot = arr.splice(pivotindex, 1)[0];

var left = ;

var right = ;

for (var i = 0; i < arr.length; i++) else

}  return quicksort(left).concat([pivot], quicksort(right));

};

記憶體中堆和棧的區別
0.申請方式和**方式不同

1.申請後系統的響應

2.申請效率的比較

找乙個陣列中最長的連續遞增的子區間長度[5,2,4,7,4,6,2]----->[2,3,6] = 3

利用動態規劃來求解

求x的y次方

指數運算子

console.log((() => )());
math.pow():math.pow(x, y)

1. 用css3 實現乙個未知寬高的div居中

1,組合使用display:table-cell和vertical-align、text-align,使父元素內的所有行內元素水平垂直居中(內部div設定display:inline-block即可

2,translate()函式是css3的新特性,在不知道自身寬高的情況下,可以利用它來進行水平垂直居中。

當使用:top:50%, left:50%,是以左上角為原點,故不處於中心位置。

translate(-50%, -50%)作用是,往上(x軸),左(y軸)移動自身長度的50%,以使其居於中心位置。

3,用彈性布局實現垂直左右居中

display:flex; 設定.wrap為彈性布局

justify-content:center;定義專案在主軸(水平方向)上居中對齊

align-items:center;定義專案在交叉軸(垂直方向)上居中對齊

2. 寫一段js繼承的**

/* ------------------原型鏈繼承------------------ */ 

// 父類建構函式

function supertype()

// 父類原型方法

supertype.prototype.getsupervalue = function ()

//子類建構函式 function subtype()

// 子類原型物件指向父類例項實現繼承

subtype.prototype = new supertype();

subtype.prototype.getsubvalue = function () var sub = new subtype();

console.log(sub.getsupervalue());

/* ------------------原型鏈繼承------------------ */

3. html+css定義乙個三列的布局

1.  使用float實現三列左右固定寬高,中間自適應寬度

.left    

.center

.right

2.利用絕對定位

.main-left       

.main-center

.main-right

3,flex布局實現

.left    

.center

.right

4. 頁面優化的方法

避免head標籤js堵塞

減少head裡面的css資源

延遲載入,優化

去掉不必要的外掛程式

最小化重定向

利用瀏覽器快取

5. git和svn的區別

svn是集中式版本控制系統,版本庫是集中放在**伺服器的

git是分布式版本控制系統,它沒有**伺服器的,每個人的電腦就是乙個完整的版本庫。

git把內容按元資料(中介資料,描述資料的資料)方式儲存,而svn是按檔案

git和svn是通過.git和.svn檔案,.git只是在本地的版本庫的目錄下存在,而.svn存在於每乙個資料夾,當我們不需要版本控制的時候,要刪除.svn很費時。

6. 輸入乙個**後,計算機是怎麼處理的

dns 解析:將網域名稱解析成 ip 位址

tcp 連線:tcp 三次握手

傳送 http 請求

伺服器處理請求並返回 http 報文

瀏覽器解析渲染頁面

斷開連線:tcp 四次揮手

7. 如何用js動態新增

2018 8 20 360 前端面經

1.自我介紹 2.專案試玩 難點 技術棧 3.如何實現地圖 分層 一層如何實現 資料結構,類似 4.如何實現元件間通訊 on,emit,全域性變數 5.websocket遇到的問題,如何除錯 6.碰撞檢測如何實現 資料結構 8.兩欄布局 越多越好 9.settimeout原理 事件迴圈 10.事件繫...

小公尺前端面試

html5語義化 重繪和回流 閉包 應用 缺點 響應式bootstrap seo防抖節流和應用 http和https 對稱加密 非對稱加密 水平垂直居中 建構函式怎麼建立乙個物件 專案中用過 hotcss 實現原理 jquery裡的鏈式呼叫 vue實現雙向資料繫結的原理 專案中 webpack實現了...

作業幫前端面經

實習做的事情以及收穫 webpack優化 為什麼webpack可以識別es6的import es6 模組化 common.js特點 盒模型js基本資料型別 接下來就是 題 附加乙個url解析為object function urltoobj url let arr2 url.split arr2.m...