前端面試題集錦(4)-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)服務(wù)項目包括東蘭網(wǎng)站建設(shè)、東蘭網(wǎng)站制作、東蘭網(wǎng)頁制作以及東蘭網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東蘭網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到東蘭省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、對 this 的理解, 三種改變 this 的方式 ?

2、cookie, localStorage,sessionStorage 的區(qū)別 ?

3、原生 ajax 的流程 ? ?

4、如何實現(xiàn)繼承 ?

5、函數(shù)的節(jié)流和防抖是什么??

6、什么是 Promise 以及promise的作用??

7、Promsie 和 async/await 的區(qū)別和使用 ?

8、對于數(shù)組去重你有哪些辦法??

9、如何實現(xiàn)數(shù)組的復(fù)制 ?

10、git 的常用指令有哪些 ?


1、對 this 的理解, 三種改變 this 的方式 ? 1. 任何情況下直接在 script 中寫入的 this 都是 window 。 2. 函數(shù)中的 this 非嚴格模式: this 指向 window , 嚴格模式時: this 指向 undefined 。 3. 箭頭函數(shù)的 this ? ? ? ???? this都指向箭頭函數(shù)外上下文環(huán)境的 this 指向 4. 對象中 this
??? 對象屬性的this 指向?qū)ο笸馍舷挛沫h(huán)境的 this ??? 對象方法( 普通函數(shù) ) 中的 this ,指向當前對象 ( 誰執(zhí)行該方法, this 就指向誰 )
5. 回調(diào)函數(shù)的 this 指向
??? setTimeout , setInterval 回調(diào)函數(shù)不管是否是嚴格模式都會指向 window 。 ??? 通過在函數(shù)內(nèi)執(zhí)行當前回調(diào)函數(shù) 非嚴格模式:this 指向 window , 嚴格模式時: this 指向undefined 。 ??? 遞歸函數(shù)中的this 非嚴格模式: this 指向 window , 嚴格模式時: this 指向 undefined 。 ??? ?使用 arguments 0 執(zhí)行函數(shù)時 this 指向 arguments 。 ??? 事件中的回調(diào)函數(shù),this 指向事件偵聽的對象 (e.currentTarget);
6 、 call , apply , bind 方法執(zhí)行時 this 的指向
??? 如果call,apply,bind 傳參時,第一個參數(shù)傳入的不是 null 或者 undefined ,傳入什么 this 指向什么 ??? 如果第一個參數(shù)傳入的是null 或者 undefined , 非嚴格模式下指向 window
7 、在 ES6 的類中 this 的指向
??? 構(gòu)造函數(shù)中的this 指向?qū)嵗斍邦愃a(chǎn)生的新的實例對象 ??? 類中實例化方法中this 指向誰執(zhí)行該方法, this 指向誰 ??? 類中靜態(tài)方法中this 執(zhí)行該類或者該類的構(gòu)造函數(shù) ??? 類中實例化箭頭方法,this 仍然指向當前類實例化的實例對象
8 、 ES5 的原型對象中 this 的指向
??? 在原型的方法中,this 指向?qū)嵗斍皹?gòu)造函數(shù)的實例化對象(誰執(zhí)行該方法, this 指向誰) ; ??? 三種改變this 指向的方式 ??? 函數(shù)名.call (this,....) this 寫誰就指誰。 ??? 函數(shù)名.apply(this,[ 參數(shù) 1 ,參數(shù) 2 , ...]) this 寫誰就指誰。 ??? 函數(shù)名. bind (this,1,2,3) this 寫誰就指誰。

2、cookie, localStorage,sessionStorage 的區(qū)別 ?

📕?cookie

存儲方式 存儲用戶信息,獲取數(shù)據(jù)需要與服務(wù)器建立連接。 以路徑存儲,上層路徑不能訪問下層的路徑 cookie ,下層的路徑 cookie 可以訪問上層的路徑 cookie 作用與特性 可存儲的數(shù)據(jù)有限,且依賴于服務(wù)器,無需請求服務(wù)器的數(shù)據(jù)盡量不要存放在 cookie 中,以免影響頁面性能。 可設(shè)置過期時間。 存儲數(shù)量及大小 將 cookie 控制在 4095B 以內(nèi),超出的數(shù)據(jù)會被忽略。 IE6 或更低版本 最多存 20 個 cookie ; IE7 及以上 版本 多可以有 50 個; Firefox 多 50 個; chrome 和 Safari 沒有做硬性限制。 cookie 大特征就是可以在頁面與服務(wù)器間互相傳遞,當發(fā)送或者接受數(shù)據(jù)時自動傳遞

📕?localStorage

存儲客戶端信息,無需請求服務(wù)器。 數(shù)據(jù)永久保存,除非用戶手動清理客戶端緩存。 開發(fā)者可自行封裝一個方法,設(shè)置失效時間。 5M 左右,各瀏覽器的存儲空間有差異。 任何地方都可以存都可以取 操作簡單

📕?sessionStorage

存儲客戶端信息,無需請求服務(wù)器。 數(shù)據(jù)保存在當前會話,刷新頁面數(shù)據(jù)不會被清除,結(jié)束會話(關(guān)閉瀏覽器、關(guān)閉頁面、跳轉(zhuǎn)頁面)數(shù)據(jù)失效。 5M 左右,各瀏覽器的存儲空間有差異。 同頁面不同窗口中數(shù)據(jù)不會共享

3、原生 ajax 的流程 ? ?
4、如何實現(xiàn)繼承 ? 📕? 對于 JavaScript 來說,繼承有兩個要點: ? ? ? ? ? ? 1. 復(fù)用父構(gòu)造函數(shù)中的代碼 ? ? ? ? ? ? 2. 復(fù)用父原型中的代碼第一種實現(xiàn)復(fù)用父構(gòu)造函數(shù)中的代碼,我們可以考慮調(diào)用父構(gòu)造函數(shù)并將 this 綁定到子構(gòu)造函數(shù)。 📕? 第一種方法:復(fù)用父原型中的代碼,我們只需改變原型鏈即可。將子構(gòu)造函數(shù)的原型對象的 proto 屬性指向父構(gòu)造函數(shù)的原型對象。 📕? 第二種實現(xiàn) 使用 new 操作符來替代直接使用 proto 屬性來改變原型鏈。 📕? 第三種實現(xiàn) 使用一個空構(gòu)造函數(shù)來作為中介函數(shù),這樣就不會將構(gòu)造函數(shù)中的屬性混到 prototype 中
📕? 第四種實現(xiàn) ? ? es6 類的繼承 extends 。 5、函數(shù)的節(jié)流和防抖是什么??

📕?節(jié)流

節(jié)流是指當一個事件觸發(fā)的時候 , 為防止事件的連續(xù)頻繁觸發(fā) , 設(shè)置定時器 , 達到一種一段事件內(nèi)只觸發(fā)一次的效果 , 在當前事件內(nèi)不會再次觸發(fā), 當前事件結(jié)束以后 , 再次觸發(fā)才有效 .

📕?防抖

防抖是指當一個事件觸發(fā)的時候 , 為防止頻繁觸發(fā)事件 , 設(shè)置定時器 , 以達到一種 頻繁觸發(fā)期間不處理 , 只有當最后一次連續(xù)觸發(fā)結(jié)束以后才處理

6、什么是 Promise 以及promise的作用??
Promise 是異步編程的一種解決方案:從語法上講, promise 是一個對象,從它可以獲取異步操作的消息; 從本意上講,它是承諾,承諾它過一段時間會給你一個結(jié)果。 promise 有三種狀態(tài): pending( 等待態(tài) ) , fulfiled( 成功態(tài) ) , rejected( 失敗態(tài) ) ;狀態(tài)一旦改變,就不會再變。創(chuàng)造promise 實例后,它會立即執(zhí)行 promise 是用來解決兩個問題的: 回調(diào)地獄,代碼難以維護, 常常第一個的函數(shù)的輸出是第二個函數(shù)的輸入這種現(xiàn)象 promise 可以支持多個并發(fā)的請求,獲取并發(fā)請求中的數(shù)據(jù) 這個 promise 可以解決異步的問題,本身不能說 promise 是異步的
7、Promsie 和 async/await 的區(qū)別和使用 ?
??? 函數(shù)前面多了一個async 關(guān)鍵字。 await 關(guān)鍵字只能用在 async 定義的函數(shù)內(nèi)。 async 函數(shù)會隱式地返回一個promise ,該 promise 的 reosolve 值就是函數(shù) return 的值。 ??? 第1 點暗示我們不能在 外層代碼中使用 await ,因為不在 async 函數(shù)內(nèi)。使用: ? ? ? ? ? 1.async 和 await 是配對使用的, await 存在于 async 的內(nèi)部。否則會報錯 。 ? ? ? ? ? 2.await 表示在這里等待一個 promise 返回,再接下來執(zhí)行。 ? ? ? ? ? 3.await 后面跟著的應(yīng)該是一個 promise 對象,(也可以不是,如果不是接下來也沒什么意義了 )
8、對于數(shù)組去重你有哪些辦法?? 📕? 第一種:
for(var i=0;i

📕?第二種:

var arr1=[];
for(var i=0;i

📕?第三種:

var arr1=[];
for(var i=0;i

📕?第四種:

var arr1=[];
for(var i=0;i

📕?第五種:

var arr1=[];
for(var i=0;i

📕?第六種:

arr=[1,2,3,1,2,3,1,2,3]
new Set(arr);
9、如何實現(xiàn)數(shù)組的復(fù)制 ? 📕? for循環(huán)逐一復(fù)制
var arr1=[];
for(var i=0;i

📕?...方式

var arr1=[...arr];

📕?slice方法

var arr1=arr.slice();

📕?concat方法

var arr1=arr.concat();

📕?map方法

var arr1=arr.map(item=>item);

📕?reduce方法

var arr1=arr.reduce((v,t)=>v.push(t),[])
10、git 的常用指令有哪些 ?
git branch 分支查看 git branch branch_1 增加分支 git checkout branch 分支切換 git merge branch_1 合并分支 ( 合并前要切換當前分支至 master) git branch -d branch_1 刪除分支 git remote 查看當前倉庫管理的遠程倉庫信息 git remote show origin 查看指定的遠程倉庫的詳細信息 git push --set-upstream origin branch_1 第一次將本地分支推到遠程倉庫 git push< 遠程主機名 >< 本地分支名 >:< 遠程分支名 >將本地分支推到遠程分支 git pull< 遠程主機名 >< 遠程分支 >:< 本地分支 >將遠程分支拉到本地分支 git branch -d branch_0 刪除本地合并后分支 git brench -D branch_0 刪除本地未合并分支 it push origin --delete branch_0 刪除遠程分支 git restore [filename] 進行清除工作區(qū)的改變 git tag 查看標簽 git tag v1.0.0 打標簽 git push origin v1.0.0 將 tag 同步到遠程服務(wù)器

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站欄目:前端面試題集錦(4)-創(chuàng)新互聯(lián)
當前網(wǎng)址:http://www.bm7419.com/article12/cespdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站電子商務(wù)、品牌網(wǎng)站設(shè)計、小程序開發(fā)、軟件開發(fā)網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)