1. 程式人生 > >前端面試問題總結

前端面試問題總結


}

xhr.open();

// 如果為POST

xhr.open('POST','1.php',true);

// 設定請求主題的訊息型別

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

beforeSend();

xhr.send();

5、跨域請求

瀏覽器從某個域名下的資源訪問另一個域名下的資源,可能是協議,域名,埠號不同

1)、方案1

給被跨域訪問的資源新增相應訊息頭部,設定允許來至於那個域名下的頁面訪問當前頁面

header("Access-Control-Allow-Origin:http://xx.com");


2)、方案2

JSONP

客戶端定義操作JSON資料的函式,開始請求資源。

被請求資源在設定header頭部的時候,把Json改成js格式的型別,

返回客戶端的時候,字串改成 “函式名(json引數)” 的形式

....

6、        HTML5新增了那些標籤,廢除了那些標籤

新的表單元素

datalist 、progress 、meter、output

7、 HTML5新增了那些標籤屬性,廢除了那些標籤屬性

新的input type

(1)、number顯示一個數字輸入框

(2)、email顯示一個郵件地址輸入框


(3)、url 顯示一個url地址輸入框

(4)、tel顯示一個電話號碼輸入框

(5)、search顯示搜尋輸入框

(6)、range顯示一個範圍選擇滑塊

(7)、color顯示一個顏色選擇框

(8)、date顯示一個日期選擇框

(9)、month 顯示一個月份選擇器

(10)、week顯示一個星期/周選擇器

表單新屬性

(1)、placeholder:站位訊息

(2)、autoplay自動獲得焦點

(3)、multiple:多選,用於email和file

(4)、autocomplete:自動完成

(5)、form:自定當前輸入域所屬的表單


(6)、required:必填項

(7)、min:最小值

(8)、max:最大值

(9)、min-length / max-length : 最小/最大長度

(10)、pattern :定義正則表示式

PS:總結6、7

(1)新的input type——10個

number、email、url、tel、search、range、color、date、month、week

(2)新的表單元素——4個

datalist、progress、meter、output

(3)表單元素新的屬性——11個

placeholder、autofocus、autocomplete、multiple、form

---------------------- 驗證相關

required、min、max、minlength、maxlength、pattern

8、SVG和Canvas的比較

SVG        Canvas

繪製的是向量圖        繪製的是點陣圖

每個圖形/影象都是獨立的標籤        只有畫布是標籤

容易為每個圖形新增事件監聽        不能為每個圖形新增獨立的事件監聽

可以無限縮放,適合地圖        不能無限放大,適合表現顏色細節,例如遊戲

9、描述一下瀏覽器的執行緒模型

Program: 程式,編寫好的程式碼經過處理,可以在計算機上執行,放在檔案系統上

Progress:程序/任務,程式從磁碟中調入記憶體,分配必須可執行程式碼空間、資料空間,隨時準備被CPU執行

thread:執行緒,程序內部執行程式碼的基本單位

程序和執行緒的關係:

程序是作業系統分配記憶體的基本單位

執行緒是執行程式碼的基本單位

執行緒處於程序內部,一個程序內部必須至少有一個執行緒,也可以有多個執行緒,這些執行緒之間可以沒有影響,併發執行(巨集觀上是同時執行,微觀上看是交替執行)

10、JS內建物件

String、Number、Boolean----原始型別

Array Math Date RegExp Error Function Object Global(在瀏覽器中被替換window);

11、檢索關鍵詞的位置

while((i=str.indexOf("關鍵詞",fromi))!=-1){

i // 關鍵詞的位置

};

while((i=str.lastIndexOf("關鍵詞",fromi))!=-1){

i // 關鍵詞的位置

}

12、Error 專門封裝錯誤資訊的物件

6種

SyntaxError ReferenceError TypeError RangeError URIError EvalError

13、try catch中的return

如果finally中有return 則使用finally中的return 返回

如果finally中沒有return ,try中的return,會先獲得要返回的值,但掛起,暫不返回,要等finally中的程式碼執行完,才返回

14、檢索 reg.exec(str);

while((arr=reg.exec(str))!=null){

arr[0] //本次找到的關鍵詞

arr[i] //第i個分組的子內容

arr.index //本次找打的關鍵詞位置

}

15、Date API

FullYear Month Date Day

Hours Minutes Seconds Miliseconds

Day 沒有set 方法 其他都有get set方法

<三>型別3
連結:https://zhuanlan.zhihu.com/p/23906368來源:知乎

1、什麼是盒子模型?

在網頁中,一個元素佔有空間的大小由幾個部分構成,其中包括元素的內容(content),元素的內邊距(padding),元素的邊框(border),元素的外邊距(margin)四個部分。這四個部分佔有的空間中,有的部分可以顯示相應的內容,而有的部分只用來分隔相鄰的區域或區域。4個部分一起構成了css中元素的盒模型。

2、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?

行內元素:a、b、span、img、input、strong、select、label、em、button、textarea

塊級元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

空元素:即系沒有內容的HTML元素,例如:br、meta、hr、link、input、img

3、CSS實現垂直水平居中

一道經典的問題,實現方法有很多種,以下是其中一種實現:

HTML結構:

<div class="wrapper">

<div class="content"></div>

</div>


CSS:

.wrapper{position:relative;}

.content{

background-color:#6699FF;

width:200px;

height:200px;

position: absolute; //父元素需要相對定位

top: 50%;

left: 50%;

margin-top:-100px ; //二分之一的height,width

margin-left: -100px;

}


4、簡述一下src與href的區別

href 是指向網路資源所在位置,建立和當前元素(錨點)或當前文件(連結)之間的連結,用於超連結。

src是指向外部資源的位置,指向的內容將會嵌入到文件中當前標籤所在位置;在請求src資源時會將其指向的資源下載並應用到文件內,例如js指令碼,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源載入、編譯、執行完畢,圖片和框架等元素也如此,類似於將所指向資源嵌入當前標籤內。這也是為什麼將js指令碼放在底部而不是頭部。

5、什麼是CSS Hack?

一般來說是針對不同的瀏覽器寫不同的CSS,就是 CSS Hack。

IE瀏覽器Hack一般又分為三種,條件Hack、屬性級Hack、選擇符Hack(詳細參考CSS文件:css文件)。例如:

// 1、條件Hack

<!--[if IE]>

<style>

.test{color:red;}

</style>

<![endif]-->

// 2、屬性Hack

.test{

color:#0909; 

*color:#f00; 

_color:#ff0; 

}

// 3、選擇符Hack

* html .test{color:#090;} 

* + html .test{color:#ff0;} 


6、簡述同步和非同步的區別

同步是阻塞模式,非同步是非阻塞模式。

同步就是指一個程序在執行某個請求的時候,若該請求需要一段時間才能返回資訊,那麼這個程序將會一直等待下去,直到收到返回資訊才繼續執行下去;

非同步是指程序不需要一直等下去,而是繼續執行下面的操作,不管其他程序的狀態。當有訊息返回時系統會通知程序進行處理,這樣可以提高執行的效率。

7、px和em的區別

px和em都是長度單位