1.如何用原生js給一個按鈕綁定兩個onclick事件
q:btn.addEventListener("click",hello);
2.document.write和innerHTML的區別;
q:document.write是直接寫入到頁面的內容流,會導致頁面被重寫。innerHTML將內容寫入某個DOM節點,不會導致頁面全部重繪
3.ajax的步驟;
q:(1)創建XMLHttpRequest對象,也就是創建一個異步調用對象.
(2)創建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息.
(3)設置響應HTTP請求狀態變化的函數.
(4)發送HTTP請求.
(5)獲取異步調用返回的數據.
(6)使用JavaScript和DOM實現局部刷新.
4.xml和json的區別;
q:json數據體積小,傳遞速度快,JSON與JavaScript的交互更加方便,更容易解析處理,更好的數據交互,XML對數據描述性比較好;
5.清楚浮動的方法;(常見)
q:(1).父級p定義height;(如果高度和父級p不一樣時,會產生問題)
(2).結尾處加空p標簽clear:both;
(2).父級p定義偽類:after和zoom;(IE8以上和非IE瀏覽器才支持:after)
(2).父級p定義overflow:hidden;(不能和position配合使用)
6.box-sizing常用的屬性;
q:·box-sizing:content-box;(默認屬性值,W3C)
·box-sizing:border-box;(IE盒模型)
·box-sizing:inherit;
(box-sizing屬性在FireFox中存在兼容問題,所以需要使用-moz-box-sizing做一下兼容)
7.undefined 和 null 區別;
q:null:Null類型,代表“空值”代表一個空對象指針,使用typeof運算得到“object”
undefined:Undefined類型,當一個聲明了一個變量未初始化時,得到的就是undefined。(null和undefined都表
示“值的空缺”,你可以認為undefined是表示系統級的、出乎意料的或類似錯誤的值的空缺,而null是表示程序級的、正常
的或在意料之中的值的空缺。)
8.常見的HTTP狀態碼;
q:2開頭 (請求成功)、3開頭 (請求被重定向)、4開頭 (請求錯誤)、5開頭(服務器錯誤)
9.網站性能優化;
q:1.JavaScript壓縮和模塊打包
2.按需加載資源
3.緩存
4.使用索引加速數據庫查詢
5.使用更快的轉譯方案
6.避免或最小化JavaScript和CSS的使用而阻塞渲染
7.圖片編碼優化
10.JS哪些操作會造成內存泄露;
q:1)意外的全局變量引起的內存泄露;
2)閉包引起的內存泄露;
3)沒有清理的DOM元素引用;
4)被遺忘的定時器或者回調;
5)子元素存在引起的內存泄露;
11.什么是閉包,如何使用它,為什么要使用它;
q:閉包就是能夠讀取其他函數內部變量的函數。由于在Javascript語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉
包簡單理解成“定義在一個函數內部的函數”;由于閉包會使得函數中的變量都被保存在內存中,內存消耗很大,所以不能濫用閉包,
否則會造成網頁的性能問題,在IE中可能導致內存泄露。解決方法是,在退出函數之前,將不使用的局部變量全部刪除。
12.JavaScript的同源策略;
q:同源策略規定跨域之間的腳本是隔離的,一個域的腳本不能訪問和操作另外一個域的絕大部分屬性和方法。
13.瀏覽器是如何渲染頁面的;
q:1.解析HTML文件,創建DOM樹。
自上而下,遇到任何樣式(link、style)與腳本(script)都會阻塞(外部樣式不阻塞后續外部腳本的加載)。
2.解析CSS。優先級:瀏覽器默認設置<用戶設置<外部樣式<內聯樣式<HTML中的style樣式;
3.將CSS與DOM合并,構建渲染樹(RenderTree);
4.布局和繪制,重繪(repaint)和重排(reflow);
14.從輸入url到顯示頁面,都經歷了什么;
q:1、首先,在瀏覽器地址欄中輸入url
2、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,如果緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三
步操作。
3、在發送http請求前,需要域名解析(DNS解析),解析獲取相應的IP地址。
4、瀏覽器向服務器發起tcp連接,與瀏覽器建立tcp三次握手。(TCP即傳輸控制協議。TCP連接是互聯網連接協議集的一種。)
5、握手成功后,瀏覽器向服務器發送http請求,請求數據包。
6、服務器處理收到的請求,將數據返回至瀏覽器
7、瀏覽器收到HTTP響應
8、讀取頁面內容,瀏覽器渲染,解析html源碼
9、生成Dom樹、解析css樣式、js交互
10、客戶端和服務器交互
11、ajax查詢
15.對<meta></meta>標簽有什么理解,meta的作用
q:可用于瀏覽器(如何顯示內容或重新加載頁面),搜索引擎(關鍵詞),或其他web服務;meta里的數據是供機器解讀的,告訴
機器該如何解析這個頁面,還有一個用途是可以添加服務器發送到瀏覽器的http頭部內容
16.怎么去設計一個組件封裝;
q:1)組件封裝的目的是為了重用,提高開發效率和代碼質量
2)低耦合,單一職責,可復用性,可維護性
3)前端組件化設計思路
17.線程,進程
q:1)線程是最小的執行單元,進程是最小的資源管理單元
2)一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程
18.vue數據的雙向數據綁定;
q:vue數據雙向綁定是通過數據劫持結合發布者-訂閱者模式的方式來實現的,通過Object.defineProperty()來劫持各個屬性
的setter,getter,在數據變動時發布消息給訂閱者,觸發相應的監聽回調。
19.get與post 通訊的區別;
q:1).Get請求能緩存,Post不能;
2).Post相對Get安全一點點,因為Get請求都包含在URL里,且會被瀏覽器保存歷史紀錄,Post不會,但是在抓
包的情況下都是一樣的;
3).Post可以通過requestbody來傳輸比Get更多的數據,Get沒有這個技術;
4).URL有長度限制,會影響Get請求,但是這個長度限制是瀏覽器規定的,不是RFC規定的;
5).Post支持更多的編碼類型且不對數據類型限制;
20.頁面導入樣式時,使用link和@import有什么區別;
q:(1)link屬于XHTML標簽,除了加載CSS外,還能用于定義RSS,定義rel連接屬性等作用;而@import是CSS提供的,只能用于加
載CSS;
(2)頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載;
(3)import是CSS2.1提出的,只在IE5以上才能被識別,而link是XHTML標簽,無兼容問題。
21.this對象的理解;
q:this總是指向函數的直接調用者(而非間接調用者);
如果有new關鍵字,this指向new出來的那個對象;
在事件中,this指向觸發這個事件的對象,特殊的是,IE中的attachEvent中的this總是指向全局對象Window。
關于常見的前端21道面試題及答案就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
國美易卡是國美金融旗下的現金貸、分期、信用卡代還產品,之前名叫美易分,有很多人想在國美易卡提現,但是不知道到賬的時間,那么國美易卡提現成功多久到賬?國美易卡審核要多久?國美易卡申請條件,下面一起來看看吧。國美易卡在填寫完個人資料、完成認證后會給予一定的額度,分為提現額度、購物分期、信用卡代還,其中提現額度是可以提到銀行卡內的,如果發現提現額度為零,那么使用其他額度一段時間后就可以提現了。另外如果是...
石家莊:7個客運站全部恢復運營,今天將恢復49條省際間市縣客運班線。為確保省會復工生產和人民群眾出行需求,石黃公路主樞紐白佛汽車客運站和王喜汽車客運站分別于2月23日和24日恢復運營。至此,石家莊7個汽車站全部恢復運營。今明兩天,恢復49條省際市縣公交線路(其中省際8條、城際27條、市縣公交14條)??瓦\站和線路的恢復安排如下:客運樞紐站2月23日,石家莊至臨泉、陽谷、內黃3條省線恢復運行;石家莊...
(相關資料圖)在生活中,很多人都不知道名偵探柯南中赤井秀一出現的集數是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的名偵探柯南中赤井秀一出現的集數相關的一些知識,我們一起來學習下吧!名偵探柯南中赤井秀一出現的集數(不完全統計):230神秘的乘客(前篇)、230神秘的乘客(前篇)、231神秘的乘客(后篇)、254本廳刑事戀愛物語4(后篇)、259來自芝加哥的男子(后篇)、267情人節的真相...