分享一些前端的面試題

2021-09-29 05:47:14 字數 2517 閱讀 7238

偽元素選擇器     :after   :before

內部樣式和外部樣式 採用就近原則

2.權重計算規則

!important  >1000

內聯        =1000

id            =100

類            =10

偽類        =10

元素        =1

*            =0

繼承         無

3.闡述清除浮動的幾種方式,以及他們的優缺點

1)給父元素設定高度  但這種情況 有些時候不能精確的計算出父元所需要的高度

2)父元素也浮動   這又會影響父類元素的同級元素了

3)父元素寫 overflow:hidden  如果父元素需要 溢位顯示的話  就不行了

4)在父元素的後面加空的div元素   設定樣式clear:both

4.列舉js的幾種資料型別

undefined null number string boolean object es7中的 symbol

null是原型鏈的起點  math沒構造方法 沒有constructor

5.如何使用原生的js給乙個按鈕繫結多個onclick事件

elem.addeventlistener("click",handler1);

elem.addeventlistener("click",handler2);

function handler1()

function handler2()

6.闡述cookies,sessionstorage和localstroage區別

cookies是用來跟蹤瀏覽器上使用者身份的會話方式,cookie是伺服器發給客戶端的特殊資訊,

cookie是以文字的方式儲存在客戶端,單個cookie儲存的資料不能超過4kb,

應用:判斷使用者是否登陸過**,以便下次能夠實現直接登陸

sessionstorage和localstroage是html5的新特性

sessionstorage:將資料儲存在session物件中。所謂session,是指使用者在瀏覽某個**時,從進入**到瀏覽器關閉所經過的這段時間,也就是使用者瀏覽這個**所花費的時間。session物件可以用來儲存在這段時間內所要求儲存的任何資料。

兩者都儲存在客戶端,不會傳送到伺服器端

sessionstorage為臨時儲存,而localstorage為永久儲存

cookie的儲存限制是  4kb  但是 localstorage是 5mb

cookie每次都隨著http請求到伺服器端  佔頻寬和網速

7.編寫乙個方法去掉陣列裡面重複的內容

function qc(arr);

for(val of arr)

arr=;

var i=0;

for(var val in obj)

return arr;

}8.簡述get和post的相同點和不同點

相同點:都可以向伺服器傳送帶引數的請求,http請求底層協議都是tcp/ip,所以兩者沒有本質的區別

不同點:get提交的資料放在url中,post則不會。這是最顯而易見的差別。這點意味著get更不安全(post也不安全,因為http是明文傳輸抓包就能獲取資料內容,要想安全還得加密)

get回退瀏覽器無害,post會再次提交請求(get方法回退後瀏覽器再快取中拿結果,post每次都會建立新資源)

get提交的資料大小有限制(是因為瀏覽器對url的長度有限制,get本身沒有限制),post沒有

get可以被儲存為書籤,post不可以。這一點也能感受到。

get能被快取,post不能

get只允許ascii字元,post沒有限制

get會儲存再瀏覽器歷史記錄中,post不會。這點也能感受到。

9.闡述mvc和mvvm的原理和區別

mvvm即model-view-viewmodel的簡寫。即模型-檢視-檢視模型。模型(model)指的是後端傳遞的資料。檢視(view)指的是所看到的頁面。檢視模型(viewmodel)是mvvm模式的核心,它是連線view和model的橋梁。它有兩個方向:一是將模型(model)轉化成檢視(view),即將後端傳遞的資料轉化成所看到的頁面。實現的方式是:資料繫結。二是將檢視(view)轉化成模型(model),即將所看到的頁面轉化成後端的資料。實現的方式是:dom 事件監聽。這兩個方向都實現的,我們稱之為資料的雙向繫結。

mvc是model-view- controller的簡寫。即模型-檢視-控制器。m和v指的意思和mvvm中的m和v意思一樣。c即controller指的是頁面業務邏輯。使用mvc的目的就是將m和v的**分離。mvc是單向通訊。也就是view跟model,必須通過controller來承上啟下。mvc和mvvm的區別並不是vm完全取代了c,只是在mvc的基礎上增加了一層vm,只不過是弱化了c的概念,viewmodel存在目的在於抽離controller中展示的業務邏輯,而不是替代controller,其它檢視操作業務等還是應該放在controller中實現。也就是說mvvm實現的是業務邏輯元件的重用,使開發更高效,結構更清晰,增加**的復用性。

Python 演算法面試題的一些分享

給定一組數字,一組有9個數字,將這9個數字填寫到33 的九宮格內 使得橫,豎,斜對角一條線上的三個數字之和相等 如果無解則列印無解 參考這位老哥的c語言寫法,用python3再實現一遍 時間複雜度為 o n def nine input list 1,2,3,4,5,6,7,8,9 t array ...

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...

一些面試題

1.如何檢視埠8080的程序 netstat anp grep 8080 lsof i 8080 2.在 tmp目錄下建立test.txt檔案,內容為 hello,world 用乙個命令寫出來。echo hello,world tmp test.txt 3.敘述下列服務的預設埠號。ftp 20,21...