


版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 前端最新最全面試題庫JS部分1 , 怎么實現(xiàn)跨域問題?對于端口和協(xié)議的不同,只能通過后臺來解決。我們要解決的是域名不同的問題。1.下 面 是 用 php 進 行 的 設 置 ,“ * ” 號 表 示 允 許 任 何 域 向 我 們 的 服 務 端 提 交 請 求 :headerAccess-Control-Allow-Origin: *2.JSONP(JSON with Padding 填充式 JSON 或參數(shù)式 JSON)在 js 中,我們雖然不能直接用 XMLHttpRequest 請求不同域上的數(shù)據(jù)時,但是在頁面上引入不同域上的 js 腳本文件卻是可以的,jsonp 正是利用這個特性來
2、實現(xiàn)的。JSONP 由兩部分組成:回調(diào)函數(shù)和數(shù)據(jù)?;卣{(diào)函數(shù)是當響應到來時應該在頁面中調(diào)用的函數(shù),而數(shù)據(jù)就是傳入回調(diào)函數(shù)中的 JSON 數(shù)據(jù)。2,JSNOP 的優(yōu)缺點優(yōu)點:它的兼容性更好,在更加古老的瀏覽器中都可以運行,不需要 XMLHttpRequest 或 ActiveX 的支持;能夠直接訪問響應文本,支持在瀏覽器與服務器之間雙向通信缺點:JSONP 是從其他域中加載代碼執(zhí)行。如果其他域不安全,很可能會在響應中夾帶一些惡意代碼,而此時除了完全放棄 JSONP 調(diào)用之外,沒有辦法追究。因此在使用不是你自己運維的 Web 服務時,一定得保證它安全可靠。它只支持 GET 請求而不支持 POST 等
3、其它類型的 HTTP 請求;它只支持跨域 HTTP 請求這種情況,不能解決不同域的兩個頁面之間如何進行 JavaScript 調(diào)用的問題3、談談 js 作用域和閉包?答:簡單的說,作用域是針對變量的,比如我們創(chuàng)建一個函數(shù) a1,函數(shù)里面又包了一個子函數(shù) a2。此時就存在三個作用域:全局作用域a1 作用域a2 作用域;即全局作用域包含了 a1 的作用域,a2 的作用域包含了 a1 的作用域。a1 在查找變量的時候會先從自身的作用域區(qū)查找,找不到再到上一級 a2 的作用域查找,如果還沒找到就到全局作用域區(qū)查找,這樣就形成了一個作用域鏈。理解閉包首先要理解,js 垃圾回收機制,也就是當一個函數(shù)被執(zhí)行
4、完后,其作用域會被收回,如果形成了閉包,執(zhí)行完后其作用域就不會被收回。如果某個函數(shù)被他的父函數(shù)之外的一個變量引用,就會形成閉包。閉包的作用,就是保存自己私有的變量,通過提供的接口(方法)給外部使用,但外部不能直接訪問該變量。4、什么是原型鏈?答:Javascript 是面向?qū)ο蟮?,每個實例對象都有一個_proto_屬性,該屬性指向它原型對象,這個實例對象的構造函數(shù)有一個原型屬性 prototype,與實例的_proto_屬性指向同一個對象。當一個對象在查找一個屬性的時,自身沒有就會根據(jù)_proto_ 向它的原型進行查找,如果都沒有,則向它的原型的原型繼續(xù)查找,直到查到Ototype._prot
5、o_為 nul,這樣也就形成了原型鏈。6、什么是事件冒泡/捕獲?答:事件冒泡:子元素事件的觸發(fā)會影響父元素事件;開關事件冒泡:A,開啟事件冒泡:element.addEventListener(eventName,handler,false);B,關閉事件冒泡:假設傳統(tǒng)方式事件的返回值為 e,就可以通過 e.stopPropagation()來關閉事件冒泡;事件捕獲:父元素的事件會影響子元素的事件;開啟事件捕獲:element.addEventListener(eventName,handler,true)7、請說說事件委托機制?這樣做有什么好處?答:事件委托,就是某個事件本來該自己干的,但是
6、自己不干,交給別人來干。就叫事件委托。打個比方:一個 button 對象,本來自己需要監(jiān)控自身的點擊事件,但是自己不來監(jiān)控這個點擊事件,讓自己的父節(jié)點來監(jiān)控自己的點擊事件。好處:A,提高性能:列如,當有很多 li 同時需要注冊事件的時候,如果使用傳統(tǒng)方法來注冊事件的話,需要給每一個 li 注冊事件。然而如果使用委托事件的話,就只需要將事件委托給該一個元素即可。這樣就能提高性能。B,新添加的元素還會有之前的事件;8、請列舉字符串操作的方法?charCodeAt 方法返回一個整數(shù),代表指定位置字符的 Unicode 編碼;charAt 方法返回指定索引位置處的字符。如果超出有效范圍的索引值返回空字
7、符串; slice 方法返回字符串的片段;substring 方法返回位于 String 對象中指定位置的子字符串。substr 方法返回一個從指定位置開始的指定長度的子字符串。indexOf 方法返回 String 對象內(nèi)第一次出現(xiàn)子字符串位置。如果沒有找到子字符串,則返回-1; lastIndexOf 方法返回 String 對象中字符串最后出現(xiàn)的位置。如果沒有匹配到子字符串,則返回-1; search 方法返回與正則表達式查找內(nèi)容匹配的第一個字符串的位置。concat 方法返回字符串值,該值包含了兩個或多個提供的字符串的連接; split 將一個字符串分割為子字符串,然后將結果作為字符串
8、數(shù)組返回;11、怎么理解 jQuery?答:JQuery 是繼 prototype 之后又一個優(yōu)秀的 Javascript 庫。它是輕量級的 js 庫 ,它兼容 CSS3,還兼容各種瀏覽器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0 及后續(xù)版本將不再支持 IE6/7/8 瀏覽器。jQuery使用戶能更方便地處理 HTML(標準通用標記語言下的一個應用)、events、實現(xiàn)動畫效果,并且方便地為網(wǎng)站提供AJAX 交互。jQuery 還有一個比較大的優(yōu)勢是,它的文檔說明很全,而且各種應用也說得很詳細,同時還有許多成熟的插件可供選擇。jQu
9、ery 能夠使用戶的 html 頁面保持代碼和 html 內(nèi)容分離,也就是說,不用再在 html 里面插入一堆 js 來調(diào)用命令了,只需要定義 id 即可。jQuery 是一個兼容多瀏覽器的 javascript 庫,核心理念是 write less,do more(寫得更少,做得更多)。jQuery在 2006 年 1 月由美國人 John Resig 在紐約的 barcamp 發(fā)布,吸引了來自世界各地的眾多 JavaScript 高手加入,由 Dave Methvin 率領團隊進行開發(fā)。如今,jQuery 已經(jīng)成為最流行的 javascript 庫,在世界前 10000 個訪問最多的網(wǎng)站中
10、,有超過 55%在使用 jQuery。jQuery 是免費、開源的,使用 MIT 許可協(xié)議。jQuery 的語法設計可以使開發(fā)更加便捷,例如操作文檔對象、選擇 DOM 元素、制作動畫效果、事件處理、使用 Ajax 以及其他功能。除此以外,jQuery 提供 API 讓開發(fā)者編寫插件。其模塊化的使用方式使開發(fā)者可以很輕松的開發(fā)出功能強大的靜態(tài)或動態(tài)網(wǎng)頁。jQuery,顧名思義,也就是 JavaScript 和查詢(Query),即是輔助 JavaScript 開發(fā)的庫。13、表單驗證傳輸?shù)氖裁磾?shù)據(jù)?明文還是暗文=加密?如何加密?是每一次傳輸數(shù)據(jù),都是加密之后才傳輸嗎?答:概述:GET 是從服務器
11、上請求數(shù)據(jù),POST 是發(fā)送數(shù)據(jù)到服務器。事實上,GET 方法是把數(shù)據(jù)參數(shù)隊列(query string)加到一個 URL 上,值和表單是一一對應的。比如說,name=John。在隊列里,值和表單用一個&符號分開,空格用+號替換,特 殊的符號轉(zhuǎn)換成十六進制的代碼。因為這一隊列在 URL 里邊,這樣隊列的參數(shù)就能看得到,可以被記錄下來,或更改。通常 GET 方法還限制字符的大?。ù蟾攀?256 字節(jié) )。事實上 POST 方法可以沒有時間限制的傳遞數(shù)據(jù)到服務器,用戶在瀏覽器端是看不到這一過程的,所以 POST 方法比較適合用于發(fā)送一個保密的(比如信用 卡號)或者比較大量的數(shù)據(jù)到服務器。區(qū)別:Po
12、st 是允許傳輸大量數(shù)據(jù)的方法,而 Get 方法會將所要傳輸?shù)臄?shù)據(jù)附在網(wǎng)址后面,然后一起送達服務器,因此傳送的數(shù)據(jù)量就會受到限制,但是執(zhí)行效率卻比 Post 方法好??偨Y:1、get 方式的安全性較 Post 方式要差些,包含機密信息的話,建議用 Post 數(shù)據(jù)提交方式;2、在做數(shù)據(jù)查詢時,建議用 Get 方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用 Post 方式;所以:表達如果是向服務器傳輸數(shù)據(jù)(如帳號密碼等)都是加密數(shù)據(jù)(post),如果只是單單想要從服務器獲得數(shù)據(jù)或者傳輸?shù)臄?shù)據(jù)并不重要, 可以直接使用明文方式傳輸( get )14、面向?qū)ο蠛皖惖膮^(qū)別?答:簡單的說類是對象的模版。在js
13、中沒有類, 所以在 js 中所謂的 類 就是構造函數(shù), 對象就是由構造函數(shù)創(chuàng)建出來的實例對象。面向?qū)ο缶褪鞘褂妹嫦驅(qū)ο蟮姆绞教幚韱栴}, 面向?qū)ο笫菍γ嫦蜻^程進行封裝。面向?qū)ο笥腥筇匦猿橄笮裕?需要通過核心數(shù)據(jù)和特定環(huán)境才能描述對象的具體意義封裝性, 封裝就是將數(shù)據(jù)和功能組合到一起, 在 js 中對象就是鍵值對的集合, 對象將屬性和方法封裝起來, 方法將過程封裝起來繼承性, 將別人的屬性和方法成為自己的, 傳統(tǒng)繼承基于模板(類), js 中繼承基于 構造函數(shù)對象的概念,面向?qū)ο缶幊痰某绦驅(qū)嶋H就是多個對象的集合,我們可以把所有的事物都抽象成對象,在程序設計中可以看作:對象=屬性+方法。屬性就是對
14、象的數(shù)據(jù),而方法就是對象的行為。類的概念,類是對象的模版,而對象是類的實例化。舉個例子,汽車設計圖可以看作是類,而具體的汽車就是對象。再比如有一個類是表示人,然后可以通過人這個模版來實例化出張三、李四。15、在 JS 的計時器運行原理是怎樣的,為什么可以觸發(fā)計時效果? 計時器是多線程嗎?答:1.javascript 引擎只有一個線程,強迫異步事件排隊等待被執(zhí)行。2.setTimeout 和 setInterval 本質(zhì)上不同的地方是他們?nèi)绾螆?zhí)行異步代碼的。3.如果一個定時器正在執(zhí)行的時候被阻塞了,那么它將會被推遲到下一個可能的執(zhí)行點,這既是使得延遲時間有可能會超過聲明定時器時設置的值。4.In
15、terval 如果有足夠的時間來執(zhí)行(大于制定的延遲),那么它將會無延遲的一個緊接著一個執(zhí)行。原理:計時器通過設定一定的時間段(毫秒)來異步的執(zhí)行一段代碼。因為 Javascript 是一個單線程語言,計時器提供了一種繞過這種語言限制來執(zhí)行代碼的能力。總結:計時器是單線程的, 需要等待上一個執(zhí)行完, 如果上一個沒有執(zhí)行完, 下一個需要延遲執(zhí)行, 知道上一個執(zhí)行完16、如何查找構造函數(shù)和原型中的屬性?答:構造函數(shù).prototype查看構造函數(shù)的原型屬性實例對象._proto_ 查看實例對象的構造函數(shù)的原型實例對象._proto_.constructor 查看實例對象的構造函數(shù)17、js 中一共
16、有幾種數(shù)據(jù)類型?答:Undefined、Null、Boolean、Number 和 String。還有一種復雜的數(shù)據(jù)類型 Object,Object 本質(zhì)是一組無序的名值對組成的。18、call 和 apply 的區(qū)別答: 它們的共同之處:都“可以用來代替另一個對象調(diào)用一個方法,將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對象。”它們的不同之處:apply:最多只能有兩個參數(shù)新 this 對象和一個數(shù)組 argArray。如果給該方法傳遞多個參數(shù),則把參數(shù)都寫進這個數(shù)組里面,當然,即使只有一個參數(shù),也要寫進數(shù)組里面。如果 argArray 不是一個有效的數(shù)組或者不是
17、arguments 對象,那么將導致一個 TypeError。如果沒有提供 argArray 和 thisObj 任何一個參數(shù),那么 Global 對象將被用作 thisObj, 并且無法被傳遞任何參數(shù)。call:則是直接的參數(shù)列表,主要用在 js 對象各方法互相調(diào)用的時候,使當前 this 實例指針保持一致,或在特殊情況下需要改變 this 指針。如果沒有提供 thisObj 參數(shù),那么 Global 對象被用作 thisObj。更簡單地說,apply 和 call 功能一樣,只是傳入的參數(shù)列表形式不同:如 func.call(func1,var1,var2,var3) 對應的 apply
18、寫法為:func.apply(func1,var1,var2,var3)。19、說說你對 this 的理解?答:this 是一個關鍵字,它代表函數(shù)運行時,自動生成的一個內(nèi)部對象,只能在函數(shù)內(nèi)部使用。1.作為純粹的函數(shù)調(diào)用 this 指向全局對象2.作為對象的方法調(diào)用 this 指向調(diào)用對象3.作為構造函數(shù)被調(diào)用 this 指向新的對象(new 會改變 this 的指向)4.apply 調(diào)用 this 指向 apply 方法的第一個參數(shù)21、js 的異步加載有哪幾種方法?答:方案一:標簽的 async=async屬性。HTML5 中新增的屬性,Chrome、FF、IE9&IE9+均支持(IE68
19、不支持)。此外,這種方法不能保證腳本按順序執(zhí)行。方案二:標簽的 defer=defer屬性。兼容所有瀏覽器。此外,這種方法可以確保所有設置 defer 屬性的腳本按順序執(zhí)行。方案三:AJAX eval(使用 AJAX 得到腳本內(nèi)容,然后通過 eval_r(xmlhttp.responseText)來運行腳本)。兼容所有瀏覽器。方案四:iframe 方式(這里可以參照:iframe 異步加載技術及性能中關于 Meboo 的部分)。兼容所有瀏覽器。22、列舉瀏覽器對象模型 BOM 里常用的至少 4 個對象,并列舉 window 對象的常用方法至少 5 個?答:對象:Window document location screen history navigator方法:Alert() confirm() prompt() open() close()23、簡述列舉文檔對象模型 DOM 里 document 的常用的查找訪問節(jié)點的方法做簡單說明?答: document.getE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 昆明學院《現(xiàn)代辦公技能訓練A》2023-2024學年第二學期期末試卷
- 2025年非接觸溫度計項目合作計劃書
- 蘇州城市學院《場景特效》2023-2024學年第二學期期末試卷
- 噴槍及類似器具項目效益評估報告
- 全國川教版信息技術八年級上冊第9課《編輯工作表》教學設計
- 桂林師范高等??茖W校《數(shù)字繪畫技術》2023-2024學年第二學期期末試卷
- 農(nóng)村打井簡易合同范本
- 揚州大學《展具設計》2023-2024學年第二學期期末試卷
- 上海立達學院《食品營養(yǎng)與衛(wèi)生管理》2023-2024學年第二學期期末試卷
- 河南2024年河南信陽師范大學招聘專職輔導員30人筆試歷年參考題庫附帶答案詳解
- 《彰化縣樂樂棒球》課件
- 深度解讀DeepSeek技術體系
- 2024-2025年第二學期團委工作計劃(二)
- 駱駝養(yǎng)殖開發(fā)項目可行性報告設計方案
- 物理-河南省鄭州市2024-2025學年高二上學期期末考試試題和答案
- 《幼兒教育政策與法規(guī)》教案-單元3 幼兒園的開辦與管理
- 南通市2025屆高三第一次調(diào)研測試(一模)生物試卷(含答案 )
- 新時代中國特色社會主義理論與實踐2024版研究生教材課件全集6章
- 《由宋城集團的成功》課件
- (2024)湖北省公務員考試《行測》真題及答案解析
- 信息經(jīng)濟學 課件(1至6章)
評論
0/150
提交評論