收集了一部分面試的時候或者筆試的時候常常出現的題目,分享給你們。javascript
for(var i=0;i<5;i++){ (function(i){ setTimeout(function(){ console.log(i); },i*1000) })(i)} // 0,1,2,3,4
for(var i=0;i<5;i++){ setTimeout(function(){ console.log(i); },i*1000) }// 5,5,5,5,5
這三者都是儲存瀏覽器數據的,cookie相對沒有後二者的儲存大
而第二個比較特殊,他只會儲存瀏覽器運行時的數據,關閉後數據將會被清零css
JSONP是一種非正式傳輸協議,該協議的一個要點就是容許用戶傳遞一個callback
參數給服務端,而後服務端返回數據時會將這個callback參數做爲函數名來包裹住J
SON數據,這樣客戶端就能夠隨意定製本身的函數來自動處理返回數據了
簡稱解決跨域問題html
包括內容(content)、外邊距(margin)、內邊距(padding)、邊框(border)前端
二者均可以用來獲取數據,但數據安全方面post比較好
get他會暴露請求參數,post則是加密請求的參數java
在es6未發佈前,咱們是經過構造函數的方法實現類的概念,而實現繼承咱們則需
要本身去封裝一個函數,而在es6出來後,js就支持了類,繼承也有了自帶的方法來實現。
閉包的做用是爲了防止全局變量的污染webpack
在瀏覽器輸入url地址後
進行TCP三次握手
瀏覽器會向web服務器發送一個http請求
服務器會處理請求並返回一個http請求
最後瀏覽器會將這個請求內容顯示到界面上es6
在JavaScript中,原型也是一個對象,經過原型能夠實現對象的屬性繼承,
JavaScript的對象中都包含了一個」[[Prototype]]」內部屬性
這個屬性所對應的就是該對象的原型。web
由於每一個對象和原型都有原型,對象的原型指向原型對象,
而父的原型又指向父的父,這種原型層層鏈接起來的就構成了原型鏈。面試
設置瀏覽器css重置,統一默認樣式跨域
共同點均可以繼承熟悉和方法,不一樣點是call第二個參數是個形參,而apply第二個參數是數組
200/500/304/404
alert(1&&2) //2
fixed/relative/absolute
IE: trident內核
Firefox:gecko內核
Safari:webkit內核
Opera:之前是presto內核,Opera現已改用Google Chrome的Blink內核
Chrome:Blink(基於webkit,Google與Opera Software共同開發)
針對不一樣的瀏覽器寫不一樣的CSS,解決瀏覽器兼容性
iframe會阻塞主頁面的Onload事件;
搜索引擎的檢索程序沒法解讀這種頁面,不利於SEO;
iframe和主頁面共享鏈接池,而瀏覽器對相同域的鏈接有限制,因此會影響頁面的並行加載。
使用iframe以前須要考慮這兩個缺點。若是須要使用iframe
最好是經過javascript動態給iframe添加src屬性值,這樣能夠繞開以上兩個問題。
link通常在html頭部定義,做爲html標籤,同時除了引入css以外,
還能夠說明好比說rel="icon"
import通常定義在css內部,也就是通常寫在文件頭部,而且專門拿來鏈css的。
儘可能減小http請求,將圖片壓縮或者打包在一塊兒,將js文件儘可能放置在body尾部。
而構建工具可使用webpack。
消除Javascript語法的一些不合理、不嚴謹之處,減小一些怪異行爲;
消除代碼運行的一些不安全之處,保證代碼運行的安全;
提升編譯器效率,增長運行速度;
爲將來新版本的Javascript作好鋪墊。
for(var i=0; i<10; i++){} alert(i); //10,爲何?仔細觀察!
px和em以及rem都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。
em得值不是固定的,而且em會繼承父級元素的字體大小。
而rem和em很相似,區別在於rem是繼承html的字體大小。
同步是阻塞模式,異步是非阻塞模式。同步就是指一個進程在執行某個請求的時候,若該請求須要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;異步是指進程不須要一直等下去,而是繼續執行下面的操做,無論其餘進程的狀態。當有消息返回時系統會通知進程進行處理,這樣能夠提升執行的效率。