国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

用友校招筆試題解析:前端基礎與工程思維全復盤

用友校招筆試題解析:前端基礎與工程思維全復盤 1. 用友校招筆試題的考察邏輯這不是一道題而是一套篩選漏斗老規(guī)矩先聊聊這份題出現(xiàn)的背景。用友作為國內(nèi)老牌的企業(yè)服務廠商它的校招筆試題一直有個鮮明特點不追求算法題刷到天昏地暗而是重點關注基礎功、編碼習慣和知識面的廣度。2017年這個時間點尤其特殊——前端工程化剛剛開始普及Vue 2.0 發(fā)布不到一年React 16 還沒出來ES6 已經(jīng)大面積落地但好多應屆生還在寫 var。所以這份筆試題二雖然在今天看來有些基礎題已經(jīng)成了常識但它的命題思路和考察維度對現(xiàn)在準備校招、社招的人依然有很強的參考意義。整套筆試題的考察邏輯可以拆成三個層次。第一層是語言基礎主要是 JavaScript 的核心機制比如作用域、閉包、原型鏈、this 指向這種跑不掉的考點這一層篩掉的是背過 API 但沒理解原理的人。第二層是瀏覽器與頁面開發(fā)涉及 DOM 操作、事件機制、CSS 布局與兼容性這一層篩掉的是只會在框架里寫業(yè)務脫離框架就不知道怎么干活的人。第三層是綜合能力典型的表現(xiàn)形式是一道需求描述模糊的編程題你不僅要寫對還要考慮健壯性、擴展性這一層篩掉的是能跑就行從不思考工程質量的人。有趣的是用友筆試題并不是純粹意義上的難它考的很多是你在實際項目中經(jīng)常遇到、但未必深究過的細節(jié)。比如你天天用 addEventListener但你有沒有想過同一個元素上綁定的多個事件按什么順序執(zhí)行你天天寫 CSS 實現(xiàn)水平垂直居中但讓你列出三種以上方案并說明每種方案的適用場景你會不會突然卡殼這種題考察的不是刷題量而是有沒有真正用心寫過代碼。這篇文章我就以筆試題二這份卷子為主線把它可能覆蓋的知識點和實際開發(fā)中的關聯(lián)做一次完整復盤。不管你是正在準備校招的應屆生還是想自查基礎功是否扎實的在職前端這份拆解都值得花幾分鐘過一遍。2. JavaScript 核心考點this 指向、閉包與原型鏈的連環(huán)追問2.1 this 指向題四種調(diào)用方式一個都不能混筆試題里最常見的 with 系列題之一就是給出幾段代碼問你輸出是什么然后解釋為什么。這類題的底層邏輯其實就是 this 的四種綁定規(guī)則默認綁定非嚴格模式下獨立函數(shù)調(diào)用 this 指向 window瀏覽器環(huán)境嚴格模式下 this 為 undefined。隱式綁定作為對象方法調(diào)用時this 指向該對象。顯式綁定通過 call、apply、bind 調(diào)用時this 指向傳入的第一個參數(shù)。new 綁定通過 new 調(diào)用構造函數(shù)時this 指向新建的實例對象。優(yōu)先級上new 綁定 顯式綁定 隱式綁定 默認綁定。實話說第一條和第四條大部分人都記得牢容易翻車的是隱式綁定和顯式綁定的組合題以及隱式綁定丟失這個經(jīng)典陷阱。var name global; var obj { name: obj, getName: function() { return function() { return this.name; }; } }; console(obj.getName()()); // 輸出什么這段代碼輸出 global。原因很簡單obj.getName()返回的是一個普通函數(shù)當這個函數(shù)被獨立調(diào)用時this 已經(jīng)和 obj 沒有任何關系了走的是默認綁定規(guī)則。很多人在這里會下意識認為閉包會保留 this 的指向這是完全錯誤的。閉包保留的是變量作用域不是 this 綁定。如果面試官繼續(xù)追問怎么讓它輸出 obj答案無非是三個在外層var self thisES6 之前最常用的方式或者用箭頭函數(shù)箭頭函數(shù)沒有自己的 this繼承定義時的詞法作用域或者返回前顯式.bind(this)。這個考點在實際項目里的映射特別典型。比如你寫一個 Vue 組件在 methods 里用了setTimeout或者注冊了某個回調(diào)函數(shù)如果回調(diào)用的是普通 function里面的 this 就會丟。2017 年那會兒好多剛從 jQuery 轉 Vue 的開發(fā)者都在這個問題上踩過坑——jQuery 里大量使用回調(diào)函數(shù)this 又頻繁被 jQuery 內(nèi)部改寫指向 DOM 元素和 Vue 的 this 語義完全不同。所以這道題考的不是一個孤立的語法知識點而是你能不能理解 this 是函數(shù)調(diào)用時確定的而不是定義時確定的 這句話的真正含義。2.2 閉包會做題只是入門能說清實踐價值才叫懂閉包題基本上所有前端筆試題的標配用友也不例外。典型題目是給出一段循環(huán)加 setTimeout 的代碼for (var i 0; i 5; i) { setTimeout(function() { console.log(i); }, 100); }輸出結果是五個 5這個大多數(shù)人都知道。但筆試題的進階版往往會要求你能寫出修復方案并說明每種方案背后的機制。修復方式至少有三種。第一種是立即執(zhí)行函數(shù) 傳參for (var i 0; i 5; i) { (function(j) { setTimeout(function() { console.log(j); }, 100); })(i); }這相當于在每次循環(huán)時創(chuàng)建了一個新的函數(shù)作用域setTimeout 回調(diào)通過閉包捕獲了每次傳入的 j。第二種是 ES6 的 letfor (let i 0; i 5; i) { setTimeout(function() { console.log(i); }, 100); }let 在 for 循環(huán)的塊級作用域中每次迭代都會創(chuàng)建一個新的綁定回調(diào)閉包捕獲的是當次迭代的 i。第三種是 bind for (var i 0; i 5; i) { setTimeout(console.log.bind(console, i), 100); }這個方案其實挺取巧的直接把 i 作為參數(shù)預先傳給 console.log不再依賴閉包捕獲變量。我當年看到這種題的時候就在想實際開發(fā)中到底有用嗎答案是太有用了。比如你要給一組異步請求的結果做批量渲染或者在一個循環(huán)里給每個元素綁定事件處理器凡是遇到循環(huán)中創(chuàng)建異步回調(diào)的場景這個考點就會從筆試題變成線上 bug。我記得有一個真實案例同事在 for 循環(huán)里批量創(chuàng)建了上傳請求回調(diào)里用了循環(huán)變量作為文件索引結果全部上傳完成后取索引取到的全是最后一個。排查到的原因就一句話閉包捕獲的是變量本身而不是變量當前的值。2.3 原型鏈構造函數(shù)、實例、原型對象的三角關系原型鏈的考題花樣比較多但核心就一張三角關系圖構造函數(shù)有 prototype 屬性指向原型對象原型對象有 constructor 屬性指回構造函數(shù)實例內(nèi)部有一個__proto__現(xiàn)在推薦用 Object.getPrototypeOf指向原型對象。用友筆試里這類題容易出現(xiàn)的形式是function Person(name) { this.name name; } Person.prototype.sayName function() { console.log(this.name); }; var p new Person(Tom); console.log(p instanceof Person); // true console.log(p instanceof Object); // true console.log(p.constructor Person); // true console.log(Person.prototype.constructor Person); // true每一行輸出你都能答對只能算及格。真正的加分項是你能不能當場畫出來 p、Person、Person.prototype 三者之間的引用關系并且解釋清楚instanceof的機制——它是沿著__proto__鏈逐級查找看左側對象的原型鏈上有沒有右側構造函數(shù)的 prototype 對象。再進一步如果面試官在此基礎上問你Person.prototype { name: default, sayName: function() { console.log(this.name); } }; var p2 new Person(Jerry); console.log(p2.constructor Person); // false console.log(p2.constructor Object); // true這就是筆試中一個比較深的考點當你直接給 Person.prototype 整體賦值一個新對象時這個新對象沒有 constructor 屬性了所以順著原型鏈找到了 Object。很多框架源碼里會做這樣一行修正Person.prototype.constructor Person;為什么要這么干因為很多工具庫、類型判斷、組件實例化機制會依賴 constructor 屬性來反向獲取構造函數(shù)。你平時用 Vue 的時候感覺不到這回事但如果你自己寫組件庫或者用 mixin 方式擴展類這種細節(jié)就會直接影響代碼正確性。3. 瀏覽器與事件機制從冒泡/捕獲到事件委托的實戰(zhàn)延伸3.1 事件傳播的三個階段與 addEventListener 的第三個參數(shù)前端筆試特別愛考事件模型。DOM 事件的完整傳播路徑包含三個階段捕獲階段從 window 沿 DOM 樹向下到目標元素、目標階段到達目標元素、冒泡階段從目標元素沿 DOM 樹向上回到 window。div idouter div idinner點擊我/div /divvar outer document.getElementById(outer); var inner document.getElementById(inner); outer.addEventListener(click, function() { console.log(outer 冒泡); }); inner.addEventListener(click, function() { console.log(inner 冒泡); }); outer.addEventListener(click, function() { console.log(outer 捕獲); }, true); inner.addEventListener(click, function() { console.log(inner 捕獲); }, true);如果把這段代碼放到瀏覽器里點擊 inner控制臺的輸出順序是outer 捕獲 → inner 捕獲 → inner 冒泡 → outer 冒泡。注意在目標階段事件監(jiān)聽器的觸發(fā)順序取決于注冊順序而不是捕獲/冒泡標志。如果希望在事件到達目標元素時只觸發(fā)一次可以用{ capture: true }加{ once: true }或者直接在函數(shù)內(nèi)部調(diào)用stopPropagation。但這里有個隱藏的坑stopPropagation只是阻止事件繼續(xù)傳播并不會阻止同元素上其他監(jiān)聽器的執(zhí)行如果你需要阻止后續(xù)監(jiān)聽器得用stopImmediatePropagation。這個知識點是 2017 年筆試里比較細節(jié)控的題目放到實際工作中它直接對應的是表單驗證、動態(tài)組件事件隔離等場景。3.2 事件委托筆試??嫉嬲煤玫娜瞬欢嗍录械脑硎抢檬录芭菰诟冈厣辖y(tǒng)一監(jiān)聽事件通過判斷 target 來決定執(zhí)行哪個邏輯。筆試??挤绞接袃煞N一是問你下列代碼ul上綁定的 click 事件如何得知點擊的是哪個li二是讓你實現(xiàn)一個通用的委托函數(shù)。var list document.getElementById(list); list.addEventListener(click, function(e) { var target e.target; while (target ! null target ! list) { if (target.tagName LI) { console.log(target.textContent); break; } target target.parentNode; } });這里用 while 循環(huán)是因為 e.target 可能不是li而是li內(nèi)部的某個 span 或者 a 標簽必須向上查找。另一種更簡潔的做法是使用closest方法list.addEventListener(click, function(e) { var li e.target.closest(li); if (li list.contains(li)) { console.log(li.textContent); } });closest在 2017 年那會兒兼容性還沒有現(xiàn)在這么好但現(xiàn)在已經(jīng)是現(xiàn)代瀏覽器的標配了。閉卷筆試一般不會讓你寫closest因為考的是原理。但如果你在試卷上用了closest并解釋清楚它和 while 循環(huán)的等價關系就能體現(xiàn)你對新 API 的掌握程度。事件委托的價值在于如果在一個列表上有 1000 個 li 每個都綁定事件處理器內(nèi)存開銷和初始化耗時都是不可忽視的用委托方案只需要在父元素上綁定一個處理器新增子節(jié)點也無需重新綁定。這在動態(tài)渲染列表、表格、菜單這類高頻使用場景中非常普遍。Vue 的事件監(jiān)聽和 React 的合成事件系統(tǒng)本質上都借鑒了事件委托的思路——React 會在根容器上統(tǒng)一綁定事件再按照虛擬 DOM 的路徑分發(fā)。所以這道題答得好不好代表的不只是你會不會用 addEventListener而是你有沒有從瀏覽器機制的角度去理解主流框架的設計。3.3 事件循環(huán)基礎題和壓軸題的分水嶺JavaScript 是單線程語言事件循環(huán)機制決定了異步代碼的執(zhí)行順序。2017 年的筆試題已經(jīng)出現(xiàn) setTimeout、Promise、async/await 混合的題型了雖然那時候 async/await 還不像現(xiàn)在這么普及但 Promise 已經(jīng)是???。console.log(script start); setTimeout(function() { console.log(setTimeout); }, 0); Promise.resolve() .then(function() { console.log(promise1); }) .then(function() { console.log(promise2); }); console.log(script end);輸出順序是script start → script end → promise1 → promise2 → setTimeout。這個結果背后的規(guī)則是Promise.then屬于微任務會在當前宏任務結束、下一個宏任務開始之前執(zhí)行setTimeout屬于宏任務即使延遲時間設置為 0也要等到當前調(diào)用棧清空且微任務隊列清空后才執(zhí)行。所以setTimeout 0并不是立刻執(zhí)行而是要排到所有微任務之后。這個考點對后續(xù)理解前端性能優(yōu)化非常重要——如果你把一些關鍵邏輯放在微任務里它可以比 setTimeout 更早執(zhí)行但如果在微任務里又產(chǎn)生了大量微任務就會造成長任務阻塞渲染。用友筆試如果考到這里通常還會附加追問process.nextTickNode 環(huán)境和Promise.then誰先執(zhí)行答案是process.nextTick在 Node 里比微任務還要優(yōu)先。但如果你是在瀏覽器環(huán)境開發(fā)一般你只需要掌握瀏覽器的事件循環(huán)就夠用了。4. CSS 布局與兼容性從盒子模型到多方案居中的完整拆解4.1 盒子模型標準模型和 IE 模型的區(qū)別必須背到骨子里CSS 的盒子模型題目在筆試中幾乎是送分題但也最容易丟分。標準盒子模型中元素占據(jù)的總寬度 contentcontent-box寬度 padding border而 IE 盒子模型box-sizing: border-box中元素指定的寬度已經(jīng)包含了 padding 和 border。如果你寫了一個寬度為 100px、padding 為 20px、border 為 5px 的標準盒子實際占用的寬度是 150px而換成 border-box元素的實際內(nèi)容區(qū)只有 50px。用友作為面向企業(yè)服務的廠商對兼容性的關注度歷來很高所以這道題背后藏著一個實際生產(chǎn)問題老項目里充滿各種被 padding 撐爆的布局 bug。2017 年那會兒移動端適配流行REM border-box的方案核心原因就是 border-box 讓布局計算更直觀你定了 100px它就是 100px不管里面怎么加 padding。所以現(xiàn)在幾乎所有組件庫的全局樣式都會加這么一句*, *::before, *::after { box-sizing: border-box; }這不算什么高深的技巧但如果你是 2017 年參加筆試的應屆生能主動說出這句重置代碼并解釋為什么組件庫普遍這么做這就是加分項。4.2 水平垂直居中的三種方案必須知道為什么筆試里居中題的另一大考法是給你一個父容器和子元素要求寫出至少三種水平垂直居中方案并說明各自的適用場景。以下是我在項目里最常用的幾種:方案一flex 布局.parent { display: flex; justify-content: center; align-items: center; }這是目前最推薦的方式代碼簡潔語義清晰。缺點是對老舊瀏覽器IE10 以下支持不好但 2017 年之后做企業(yè)級系統(tǒng)一般也只需要兼容 IE11。方案二絕對定位 transform.parent { position: relative; } .child { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }使用 transform 做偏移不會影響文檔流也不需要知道子元素的寬高。但如果子元素內(nèi)部有文本縮放或使用了某些特效transform 偶爾會帶來渲染精度問題比如文字輕微模糊。它還有一種變體是利用 margin 負值但要求子元素寬高固定所以反而不太推薦。方案三grid 布局.parent { display: grid; place-items: center; }一行搞定2017 年筆試基本不會要求這個因為兼容性還不行但現(xiàn)在做內(nèi)部系統(tǒng)或現(xiàn)代瀏覽器環(huán)境是完全沒問題的。如果將來面試官問grid 和 flex 怎么選你就說 grid 擅長二維布局flex 擅長一維布局居中只是它們的子集能力。這類題目真正想考察的不是你能不能背出這三種方案而是你會不會根據(jù)場景做取舍。如果你回答一律用 flex說明你考慮得不夠全面如果你能主動說明如果子元素寬度不定、高度由內(nèi)容撐開transform 方案最穩(wěn)如果有大量文本需要換行則推薦 flex text-align: center這才是加分答案。4.3 移動端適配與常見兼容性陷阱用友這類企業(yè)級應用2017 年已經(jīng)有不少移動端 H5 項目了所以 CSS 里大概率會有一道移動端適配題。常見的考點是 viewport 設置meta nameviewport contentwidthdevice-width, initial-scale1.0 /以及在什么情況下會出問題如果 initial-scale 設置成小于 1 的值會導致排版視口變寬頁面整體被縮小。很多團隊的模板里會刻意地寫成這樣meta nameviewport contentwidthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno /禁止縮放確實在某些場景下能避免頁面錯亂但是對無障礙訪問非常不友好所以現(xiàn)在的主流實踐已經(jīng)不再強制 user-scalableno 了。如果用友筆試考到這個 meta 字段你可以順勢說明 accessibility 的考量這會讓面試官覺得你不是背答案而是真的在思考用戶體驗。兼容性陷阱里還有一個高頻考點inline-block 元素之間的空白間隙。兩個 span 或兩個 li 如果中間有換行或空格渲染出來會有一個約 4px 的間隙解決辦法包括去掉空格、給父容器設置 font-size: 0、使用 flex、或者用 margin 負值。筆試如果結合代碼讓你解釋為什么兩個 inline-block 布局的盒子中間多了一小段空白你一定要答出這是因為 HTML 源碼中的空白字符被渲染成了空格而不是什么神秘的 bug。這個問題的實際發(fā)生頻率遠超你的想象——尤其是在 CMS 后臺管理系統(tǒng)某個列表的按鈕之間莫名多了間距排查半天發(fā)現(xiàn)是模板引擎渲染時在元素之間插入了換行符。5. ES6 語法進階與編碼題實戰(zhàn)箭頭函數(shù)、解構賦值、Promise 與數(shù)組算法5.1 箭頭函數(shù)不是函數(shù)簡寫那么簡單箭頭函數(shù)在 2017 年的筆試題里已經(jīng)是必考重點了它和普通函數(shù)的核心區(qū)別包括沒有自己的 this箭頭函數(shù)中的 this 是在定義時從外層詞法作用域繼承的。不能用作構造函數(shù)換句話說不能對它使用 new。沒有 arguments 對象如果需要使用類數(shù)組參數(shù)得用 rest 參數(shù)。不能使用 yield所以不能作為生成器函數(shù)。常見考題有var obj { name: obj, getName: () { return this.name; } }; console.log(obj.getName()); // 輸出什么輸出結果取決于外層作用域如果這段代碼直接運行在全局環(huán)境中嚴格模式下 this 是 undefined非嚴格下是 windowwindow.name 大概是空字符串。因為箭頭函數(shù)的 this 跟 obj 沒關系它是在定義時綁定了外層詞法作用域。有不少人以為對象方法里用箭頭函數(shù)就能讓 this 指向對象這是完全的誤解。實際開發(fā)中箭頭函數(shù)最常見的應用場景就是事件回調(diào)和異步回調(diào)比如button.addEventListener(click, () { // 這里的 this 不會因為是 click 回調(diào)而改變 });但也有反例需要警惕如果動態(tài)綁定 this 是你的核心訴求比如在 Vue 的 methods 里使用箭頭函數(shù)定義方法就會導致內(nèi)部的 this 無法指向組件實例。這是 2017 年從 jQuery 轉 Vue 的人最常犯的錯誤之一。5.2 解構賦值、擴展運算符與模板字符串筆試的默寫題這些題目往往不會非常難但需要答得準、答得快。比如解構賦值交換兩個變量[a, b] [b, a]注意不需要臨時變量。擴展運算符復制數(shù)組與對象合并const arr2 [...arr1]、const merged { ...obj1, ...obj2 }。模板字符串中嵌入表達式hello ${name}。實際筆試中考解構賦值最常見的坑是變量聲明的缺省值和函數(shù)參數(shù)默認值function foo({ x 10, y 20 } {}) { console.log(x, y); } foo(); // 10 20 foo({ x: 1 }); // 1 20如果函數(shù)參數(shù)沒有默認值 {}直接調(diào)用foo()就會因為解構 undefined 而報錯。這個細節(jié)可以作為筆試題的加分點很多應屆生知道解構但不知道給參數(shù)整體一個默認空對象。在企業(yè)級應用里函數(shù)常常接收一個配置對象尤其是組件封裝時function createWidget(options {})這種防御式寫法非常常用。5.3 Promise 的實現(xiàn)層次從會用到會鏈式調(diào)用再到會手寫Promise 幾乎是所有前端筆試的必考點。用友的筆試題二如果只考到Promise 有幾種狀態(tài)狀態(tài)是否可以逆轉那屬于基礎題。狀態(tài)有 pending、fulfilled、rejected 三種一旦從 pending 變到其他狀態(tài)就不能再變了。但如果繼續(xù)加強度就會變成這樣一道題var p1 new Promise((resolve, reject) { setTimeout(() resolve(p1), 1000); }); var p2 new Promise((resolve, reject) { setTimeout(() resolve(p2), 500); }); Promise.all([p1, p2]).then((res) { console.log(res); // [p1, p2]等待所有 Promise 完成后才執(zhí)行 });以及它的變體Promise.race([p1, p2]).then((res) { console.log(res); // p2因為 p2 先 resolve });Promise.all有一個重要特點只要有一個 Promise reject整體就 reject并且當有一個 reject 時它并不會取消其他 Promise 的執(zhí)行。很多實際開發(fā)中的 bug 就來自這里——你用了 Promise.all 發(fā)起三個請求其中一個失敗另外兩個請求仍然在跑甚至可能產(chǎn)生副作用。如果你在筆試題里能主動提到失敗時不建議繼續(xù)等待其余請求這就是經(jīng)驗的價值。更進一步如果面試官問如何實現(xiàn)一個帶并發(fā)限制的 Promise 調(diào)度器那就是在考察你是否理解異步控制流。這種題在我做過的校招簡歷里很少見能答完整的但如果能答出來基本上就是 offer 候選人了。5.4 數(shù)組去重與排序一道簡單的題能有多少種解法前端筆試經(jīng)常考數(shù)組去重因為它的解法特別多每種解法都能暴露你對 JavaScript 核心 API 的熟悉程度。常見解法有// 方法一Set function unique(arr) { return [...new Set(arr)]; } // 方法二filter indexOf function unique(arr) { return arr.filter((item, index) arr.indexOf(item) index); } // 方法三Map 標記 function unique(arr) { var map new Map(); return arr.filter((item) { if (!map.has(item)) { map.set(item, true); return true; } return false; }); }如果數(shù)組里有對象Set 和 indexOf 都不能按照對象的內(nèi)容去重因為對象比較的是引用。如果有 NaNarr.indexOf(NaN)返回 -1因為 indexOf 內(nèi)部使用嚴格相等NaN ! NaN。但 Set 可以正確去重 NaN。這兩種細節(jié)都是面試追問的經(jīng)典方向。再配合一道排序題比如手寫快排function quickSort(arr) { if (arr.length 1) return arr; var pivotIndex Math.floor(arr.length / 2); var pivot arr.splice(pivotIndex, 1)[0]; var left []; var right []; for (var i 0; i arr.length; i) { if (arr[i] pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); }快排平均時間復雜度 O(n log n)最壞情況 O(n^2)退化的原因在于每次選基準都選到了最大值或最小值導致左右兩部分極不均衡。如果用友筆試讓你手寫排序再用幾句話說明時間復雜度那基本就覆蓋了一輪面試的算法考察了。6. 綜合編程題的解題思路需求模糊、邊界不清時你如何展示工程思維綜合編程題才是這張卷子里最容易拉開差距的部分。它通常不會寫得太明確而是像真實需求一樣給你一段描述讓你實現(xiàn)某個組件或功能可能是一個 Tab 切換、一個倒計時、一個簡單的事件總線或者是一個數(shù)據(jù)格式化函數(shù)。描述里沒有給好完整的 API 設計沒有明確邊界條件甚至沒有告訴你是否需要考慮性能。這種題考察的不是你會不會寫代碼而是你拿到一個需求之后腦子里先想什么。正確的做題順序應該是先明確輸入輸出。用什么數(shù)據(jù)結構進來期望什么結果出去。再列出邊界條件。空數(shù)組怎么辦類型不對怎么辦參數(shù)缺省怎么辦然后設計核心邏輯。先寫主流程再加防御。最后寫測試用例。哪怕筆試沒有要求測試你自己心里也要過一遍常規(guī)輸入、邊界輸入、異常輸入三組用例。我舉一個典型的例子實現(xiàn)一個flatten函數(shù)把嵌套數(shù)組展開為單層數(shù)組。簡單的寫法是遞歸function flatten(arr) { var result []; for (var i 0; i arr.length; i) { if (Array.isArray(arr[i])) { result result.concat(flatten(arr[i])); } else { result.push(arr[i]); } } return result; }這個能跑但效率有問題。每一個遞歸層都創(chuàng)建新數(shù)組、做 concat數(shù)據(jù)量大的時候開銷不小。你可以在筆試里用reduce和擴展運算符改進function flatten(arr) { return arr.reduce((prev, next) { return prev.concat(Array.isArray(next) ? flatten(next) : next); }, []); }但面試官更想看到的可能是你具備先拍平一層再持續(xù)拍平的思路或者直接使用arr.flat(Infinity)——雖然 ES2019 才正式確認但 2017 年已經(jīng)在草案中了你能寫出來說明你關注新特性同時你會解釋瀏覽器兼容性如果不支持我再退回到遞歸方案這種策略性思維比功能本身更值錢。再舉個例子實現(xiàn)一個防抖函數(shù)。很多人能寫出基礎版function debounce(fn, wait) { var timer null; return function() { var context this; var args arguments; clearTimeout(timer); timer setTimeout(() { fn.apply(context, args); }, wait); }; }這一步能寫出的人很多真正分出高下的是下面的問題如果希望第一次點擊立即執(zhí)行后續(xù)點擊才做防抖該怎么處理這就要給 debounce 加一個immediate參數(shù)function debounce(fn, wait, immediate) { var timer null; return function() { var context this; var args arguments; if (immediate !timer) { fn.apply(context, args); } clearTimeout(timer); timer setTimeout(() { timer null; }, wait); }; }這段代碼背后的邏輯是在第一次觸發(fā)且 timer 為空時立即執(zhí)行然后設置 timer在 wait 時間內(nèi)后續(xù)觸發(fā)都會不斷重置 timer直到 timer 超時被置空下一次觸發(fā)才會再次立即執(zhí)行。這類題目不僅考察代碼量更考察是否理解防抖和節(jié)流的本質區(qū)別以及immediate 參數(shù)帶來的行為變化。如果你能在試卷的注釋里寫下immediate 模式用于提交按鈕防止雙擊重復提交這個注釋就能讓面試官一眼看出你有真實項目經(jīng)驗因為只有真正被重復提交 bug 坑過的人才會關注這個參數(shù)。綜合編程題的另一個方向是用原生 JS 實現(xiàn)一個小功能組件比如實現(xiàn)一個 Tab 切換。這道題考察的不僅是 JS 邏輯還包含 DOM 操作、事件綁定、樣式管理。更合理的是用數(shù)據(jù)驅動的思路來寫var tabs [ { id: tab1, title: Tab 1, content: Content 1 }, { id: tab2, title: Tab 2, content: Content 2 }, { id: tab3, title: Tab 3, content: Content 3 } ]; function render() { var container document.getElementById(app); container.innerHTML div classtabs ${tabs.map((tab, index) button>function formatDate(date) { var y date.getFullYear(); var m date.getMonth() 1; var d date.getDate(); return y - (m 10 ? 0 m : m) - (d 10 ? 0 d : d); }這個代碼功能沒問題但如果加上參數(shù)校驗再改名成padZero輔助函數(shù)可讀性會明顯提升function padZero(num) { return num 10 ? 0 num : num; } function formatDate(date) { if (!(date instanceof Date)) { throw new TypeError(Expected a Date object); } var y date.getFullYear(); var m padZero(date.getMonth() 1); var d padZero(date.getDate()); return y - m - d; }這種防御式編程風格在企業(yè)項目中非常被看重因為企業(yè)的代碼不是一次性寫給自己看的而是要多人長期維護的。用友筆試題中往往有意設置一些看起來能跑但有隱患的題比如讓你讀取對象深層屬性如果你直接寫obj.a.b.c前置判斷一律不做筆試就會丟分。正確的做法是function get(obj, keyPath, defaultValue) { var keys keyPath.split(.); var result obj; for (var i 0; i keys.length; i) { if (result null) return defaultValue; result result[keys[i]]; } return result ! undefined ? result : defaultValue; }這樣的函數(shù)雖然簡單但考察的是你有沒有真實處理過接口返回結構不穩(wěn)定的問題。在企業(yè)應用里第三方接口返回的數(shù)據(jù)經(jīng)常缺字段你需要一個安全的取值函數(shù)來避免整頁白屏。2017 年那會兒 lodash 的_.get還沒有像現(xiàn)在這樣成為大家心目中的標配如果你能在筆試中自己實現(xiàn)一個就已經(jīng)領先絕大部分應試者了。調(diào)試能力的考察往往會藏在異常處理的題目里。如果你在代碼里寫了console.log來排查問題并且最終把日志留在代碼里沒刪面試官通常會扣代碼整潔分。如果在筆試中確實需要調(diào)試建議先用注釋標明 TODO: 調(diào)試完畢后移除這展示的是你對代碼質量的自我要求而不只是能做題。8. 從這一份筆試題反推的復習框架給準備校招和自查基礎的人如果你現(xiàn)在正在準備校招或者想評估自己的基礎功是否扎實建議把這份用友筆試題涉及的考點整理成一張清單按優(yōu)先級排列模塊考點建議掌握程度JavaScript 基礎數(shù)據(jù)類型、類型轉換、深拷貝/淺拷貝熟練、能寫出手寫實現(xiàn)作用域與閉包this 綁定、閉包陷阱、變量提升能解釋原理并說出實踐場景原型與繼承構造函數(shù)、原型鏈、class 繼承能畫圖、能手寫組合式繼承異步編程事件循環(huán)、Promise、async/await能講清執(zhí)行順序、能手寫基礎 Promise瀏覽器渲染機制、重排重繪、事件模型能分析性能瓶頸、能處理事件委托CSS盒模型、定位、Flex、響應式能給出多方案并說明取舍ES6let/const、解構、模板字符串、模塊化熟練使用并解釋編譯結果綜合能力防抖節(jié)流、數(shù)組去重、數(shù)據(jù)格式化能手寫、能講清邊界條件復習建議給三條第一條不要只刷題。把每一個知識點都對應到你在真實項目里用到的場景比如閉包對應模塊封裝和私有變量原型鏈對應組件基類擴展事件循環(huán)對應頁面性能優(yōu)化。如果做不到這一點你背十套筆試題也只能應付筆試過不了后面的面試追問。第二條多寫手寫實現(xiàn)。bind、call、apply、new、Promise、防抖、節(jié)流、數(shù)組去重、深拷貝、發(fā)布訂閱這些經(jīng)典實現(xiàn)題在筆試卷里出現(xiàn)的概率極高。每次手寫時注意邊界條件函數(shù)參數(shù)要不要考慮長度this 要不要穿透目標環(huán)境是瀏覽器還是 Node這些細節(jié)才是拉開分數(shù)的關鍵。第三條練表達像講課一樣把知識點講給別人聽。前端筆試雖然寫在紙面但真正決定面試結果的往往是你能不能把解題思路完整地說出來。你在復習時可以給自己出一道題請解釋setTimeout和requestAnimationFrame在動畫場景下的區(qū)別請說明position: absolute和position: fixed的定位參考點有什么不同請描述從輸入 URL 到頁面渲染完成的完整過程。這些題目看起來是背誦題但表達者的邏輯深度面試官一聽就知道。用友 2017 年校招 web 前端筆試題二放在今天看題目本身或許有些舊了但它背后考察的能力模型并沒有過時基礎是否扎實、理解是否深入、工程意識是否到位。把這份卷子當成一面鏡子仔細照一照自己比刷十套新題更有價值。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
屁股久久久久久久久久| 校园春色制服丝袜中文字亚洲| 九九热精品| 二三四区精品| 无码人妻一区二区三区色欲aⅴ| 一区二区日韩欧美久久| 97超碰欧美手机在线| 久久精品国产亚洲AV先锋| 亚洲熟女中文字幕在线| 是还免费视频1727我| 91狠狠| 国产成人网| 国产精品电| 性暴力欧美猛交在线直播| 又黑又大又粗| 超碰色老头| 丁香六月激情| 天欧美在线| 欧美一级美片在线观看免费| 75大香蕉| 操逼无码操逼| 久操操| 激情熟女12P| 香蕉在线一区二区三区| 久久免费9| av国产无码| 日本顶级天天操狠狠操夜夜操中文字幕| 老子午夜伦不卡影院| 美女毛片999| 操逼啊啊啊91| ...日韩成人一区二区三区字幕| 观看视频图片一区二区三区| 亚洲欧美国产中文视频| 亚洲官网在线| 国产精品无码久久久久2028| 大香蕉伊然在亚洲91| 一级AV性爱| 熟妇一区二区三区| 九九综合九九综合| 蜜臀少妇一区二区| 男女啊啊啊啊啊| 日韩国产在线观看av| 日韩精品操少妇| 盗摄女人妻在线| 97超碰色中文字幕| 91久久久久久| 精品免费视频国产一区| 天天舔九色婷婷| 成人av影院在线观看| 久久熟妇五十路一区| 97人人夜夜精品视频| 后入式在线免费观看60秒| 日韩国产欧美伦理在线| 后入精品| 亚洲限制级| 日本高清有码网址视频| 久九色| 亚洲情色图片区| 人妻一区视频| 午夜性生活av免费在线看| 区二区亚洲婷| 激情五月天综合网| 无码最新| 亚洲美女AV无码| 精品无码一二三四区| 欧美劲爆视频一区二区| 亚洲综合第一页| 国产成人精品午夜福利| 国产精品老熟女一区二区| 自拍偷拍草一草| 少好三P| 97色五月天完| 凸凹视频在线观看| 色综合av综合久久| 欧洲色综合| 亚洲精品蜜桃久久久一区二区三区| 男人的天堂午夜av| 97伊人| www.AV有限公司一区| 91粉嫩萝控精品福利网站_精品影音先锋国 | 精品女同一区| 亚洲成人一二三区| 欧美最婬乱婬爆婬性视频| 国产一区二区三区导航| 自拍偷拍 日韩欧美| 人妻无码视频一区二区三区久久| 麻豆久久久久久久久丝袜 | 五十路六十路七十路熟婆| 91 天天综合| 99re在线观看| 亚洲精品蜜桃久久久一区二区三区| 国产精品久久久久久无码红治院| 日韩97P| 男人的天堂三级| 性色高清在线| 五月丁香色综合| 伊人五月天激情| 人人么人人操| 欧美激情高清性猛交| 亚州色图片在线色| 欧洲小说色图视频另类| 久久夜夜夜| 蜜臀人妻少妇久久在线观看| 丁香六月婷婷久久综合| 婷婷五月天色色| 免费亚洲黄色视频在线观看| 婷婷干黄色| 色欲久久99国产精品久久久久久| 国产中午字一暮区| 久草精品一区| 黑人精品久久97| 操人妻逼91| 亚洲有码 视频一区| 色色五月天婷婷| 夜夜草网站| 日本视频一区二区三区| 伊人久久综合精品欧美| 7777奇米影视久久| 人人操人人舒服| 日韩在线观看三级电影| 亚洲精品人体| 亚洲毛片久久| 热99这里有精品综合久久 | 亚洲午夜精品久久久中文影院| 男人精品天堂一区| 色制服丝袜夫妻av一区| 日韩不卡网操逼中文字幕日韩| 久久最新视频免费观看| 人妻在线大香蕉| 另类av天堂| 日本 免费 一区二区三区 久久香蕉 | 97超碰影音| 影音先锋每日最新资源在线观看| 欧美在线91| 天天草天天日| 人人操人人干网页| 日本日皮视频逼| 色官网在线| 午夜天堂啪啪| 午夜激情床戏激情| 四虎国产成人精品免费一女五男| 欧美中文狠| 精品视频久久区| 91精品人妻五十路| 午夜精品久久久久久久第一页按摩| 国内精品久9| 精品人妻15区| 很很操在线| 久草免费福利在线播放| 五月丁香影院| 欧美熟爽综合| 加勒比综合九九99视频在线播放| 亚洲s色图| 91操熟女视频| 欧美不卡在线一区二区| 青青操狠狠撩| 中文字幕一区 二区三四五 区日 日骚| 五月婷婷激情综合| 色婷婷综合久久久久中文一区二区| 亚洲自拍欧美国产首页网曝| 日本精品九九九| 男女啊啊啊啊啊| 欧美中出| 户外裸露刺激视频第一区| 天天干,夜夜爽| 亚洲一二三四区机械| 亚洲人码13| 亚洲激情久久久伊人综合| 97精品免费| 国产毛片久久久久久久| 大香蕉手机视频| 不卡码视频| 男女性扦B| 97亚洲精品| gogogo免费高清看中国国语| 日韩三级一区| 久草看看看| 国内精品嫩模A∨私拍小视频| 操逼啊啊啊91| 麻豆精品A片免费观看| 91男同| 亚洲一二三四区| 搞中出久久| 欧美黄片视频在线观看免费 | 神马久久午夜| 美國A片| 国产四虎在线| 哈哈操 大香蕉| 国产精品视频麻豆入口| 99爱久久视频频| 国产又粗又长又大的视频| 国产亚洲精品激情| 精品妇女一区二区三区| 色噜噜人妻av中文字幕| 涩涩这里只有精品视频| 夜夜嗨av午夜成人| 青青青青操国内视频在线| 国产av又色又爽又黄| 九久久九精品视频| 国产97在线 | 亚洲| 欧美日韩国产黄色片| 丰满人妻-区二区三区免费| 天天拍天| 美国人人操人人操| 日韩国产十八禁| 久久久久久久| 五月天婷婷小说| 裸体1区| 日韩激情无码影院| 91精品国产综合久久久蜜臀| 老熟妇91| 久热超碰| 欧美91网| 欧美色五月| nuu12国产麻豆精品| 91av一区二区在线观看| AV天堂电影网| 日韩无码极品| 2001天天操| 国产精品久久久亚洲第一牛牛_在线观看 | 久久视网78| 亚洲在线a| www网站黄| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 天天躁日日躁狠狠躁| 91人人臊| 国产自啪精品视频网站黑丝| 欧美精品系列| 婷婷丁香六月| 九九热精品| 在线国产一区二区av| 人人搡人人肉久久精品| 久久久久久电影| 色优久久| 校园春色五月天| 五月婷婷激情网| 中文字幕av片| 日韩欧美字幕亚洲一区二区| 亚拍在线| 成人午夜小视频手机在线看| 久久久免费视频18| 超碰在线日韩一区| 亚欧国产无码精品在线| 夜夜国自区| 国产超碰| 四虎AV在线播放| 婷婷综合激情| 成人小电影网站tex| 91精品丝袜久久久久久| 深夜视频| 亚熟在线| 亚欧免费| 欧美综合狠| 国产精品国产拍高清AV| 欧美色图亚洲色| 国产女人高潮视频| 边做饭边操逼逼| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 国产精品白丝AV| 五月丁香综合啪啪| 国产精品96| 日韩无码嘿咻黑热久| 丰满熟女一区二区三区在线播放| 97爱爱影院| 黑人狂躁日本妞一区二区三区| 老司机午夜福利视频一区二区| 男女激情黄色网址| 欧中美三级一区二区三区| 九九九九久久久| 人妻精品视频一区二区三区| 吊色| 中文字幕91综合| 欧美日韩午夜精品一区二区三区| 精品九九淫乱男| 中文字幕 国产区| 97干在线| 人人操人人射人人干| 免费观看啪视频| 好吊色青靑草| 成熟熟女国产精品一区二区| www久| 亚洲美女AV无码| av72网| 色色亚洲| 日韩精品国产一区二区| 美女诱惑久久| 超碰97最新人妻| 青青草天天亲夜夜操网| 国产三级在线现体验区| 97欧美色综合| 精品免费1| 中文一区在线视频| 老司机午夜精品视频| 免费亚洲国产精品久久一区| 国产不卡片| 乱伦系列一区二区| 成人av性爱电影在线观看| 后入式五六区| 骚乳在线| 色婷婷香蕉| 少妇久久久久久| 另类欧美| 91夜夜蜜桃臀1区2区3区| 一级性爱aaaa| 国产精品亚洲无码| 不卡在线观看视频| 青青操在线亚洲视频观看欧美在线 | 伊人九九| 97精品国产精品免费观看| 六月激情网| 97人妻免费中文字幕| 97在线视频观看| 尤物视频新赏网鲜网色诱网| 人人操天天爽| 欧美激情五月天| 91操人| 国产强奸AV在线| 蜜臀AV一区二区三区| 老女人碰碰在线碰碰视频| 超碰三级秋霞| 激情五月天丁香社区| 日逼视频日本| 日韩欧美大片免费高清啪啪| 97亚洲中文| 欧美丝袜美女电影一二三四区| 91电影色诱| 日韩成人大片一区二区| japan日本高清乱xxxx| 襙一襙| 蜜臀久久99精品久久久久久无删减| 亚洲十八禁止| 啊啊啊啊啊好大好舒服想要| 欧美超碰96| AV天天综合| 五月婷婷激情网| 色久桃花影院在线观看| 亚洲影院无码在线| 亚洲无992tv| 校园春色五月天| 亚洲天天天| 久久久久人| 四虎在线免费视频| 婷婷香网站| 久久久久密臀一区二区| 亚洲视频二区| 大香蕉在线免| 日韩78m视频| 97天天操天天干| 色婷婷蜜臀av| 国产传媒日本欧美专区| 99热在线不卡| 人人超碰在线观看黄| 日日日啊啊啊| 国内黄色精品| 欧美 牲| 日本午夜福利视频| 国产亚卅97| 台湾大香蕉99热| 97大色网| 久久久久亚洲精品| 欧美爆操91| 96爱综合| 日韩八十路老熟女| 欧美色图片色哟哟| 麻豆三极片| 欧美一区二区男人天堂| 精品亚洲一区在线观看| 国产黄色在线播放观看| 国产理论视频在线播放| 国内精品伊人久久久久影院会| 国产激情综合| 97香蕉人人乳| 国产一区二区久久| 国产精品久久久久9999小说| 亚洲国产熟妇综合色专区| 日韩精品亚洲一二三| 亚洲欧美999| 大学生口爆吞精| 丰满人妻一区二区三区四区| 美女写真| 亚洲老熟妇xxx| 另类亚洲图色| 91色人| 天天狂操夜夜狂日| 成人一道本免费视频| 老熟女乱子伦中文字幕一区二区| 强奸乱伦AV网站| 97色色网| 欧洲亚洲人人爽爽视频| 久久亚洲一区女同性恋中文字幕| 精品蜜乳AV免费观看| 第四色奇米影视777| 亚洲天堂 视频你懂的| 992这里有精品| 尤物av网站| 欧美一区二区三区成人性生活| 偷窥自拍亚洲| 久久久久亚洲熟妇熟女| 久久婷婷影院| 久久久久久久78| 人人操人人精品影片| 免费在线看黄片av| 一区二区三区黄片免费观看| 久久婷婷国产一区二区色| 自拍二页| 久久岛国| 国产色呦呦| 欧美 中文字幕 一区| 香蕉色网| 中文字幕在线免费观看2| 成人性爱电影网| 一区二区首页| 东京太热男人的天堂久久久| 日韩欧美成人综合在线| www.欧精品| 天美麻豆黄色录像| 亚洲激情综合另类男同| 精品女人999| 久久久精品中文字幕麻豆| 欧美色亚洲| 国产女人成人精品视频| 加勒比人妻综合| 亚洲色人| 五月丁香六月婷| 亚洲日韩欧美一区二区| 日韩啊V| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 久久东京热久久| 国语精品内射在线观看| 欧美一区二区情色| 欧美色干| 色狠狠色| 欧美爱国产综合、| 伊人久久大香线蕉无码| 91高跟美女在线播放| 伊人久久AV诱惑悠悠| 色情五月丁香| 51一区二区三区| www.yeyecao| 欧美精品丝袜久久久中文字幕| 亚洲精品电影| 国产无马av| 中文字幕人乱码中文字的预防方法 | 在线午夜成人无码视频| 精品妇女一区二区三区| 91欧美情色| 人妻精品一区二区在线| 伊人一区二区三区| 成人自拍三级在线观看| 9九九九九视频在线观看| 曰本道人妻久久久在线不卡色视频| 国产一区二区三区白丝| 欧美欲色| 我要去看2个日本美女.com曹逼| 五月天激情网站| 成人青青草原伊人| 五月天激情婷婷| 91成人无码| 五月天偷拍| sewuyueav| 日韩啪啪网| 女生看匆91网站| 婷婷在线视频| 精品人妻一区二区免费蜜桃视频| 精品精品精品| 91美女在线观看| 婷婷情色综合网| yw尤物av无码点击进入麻豆| 日本999精品| 国产日韩欧美中文在线播放| 干B| 性影在线视频| 久9爱精品| 国产成人+综合亚洲+天堂| 久久蜜桃一区二区| 亚洲欧美一区二区三区在钱蜜桃| 色综合av综合久久| 久日综合网| 国产福利小视频高清在线观看| 久草线上视频免费看| 色色色色网站| 最近二区三区视频大全| 综合久欧洲| 日韩一级特黄av毛片| 少妇久久久免费| av资源在线播放天堂| 日韩欧美亚洲自拍偷拍| 国产AV天美| 最近2019中文字幕国语免费版| 日本天堂在线播放| 日韩精品资源| 人妻夜夜爽天天爽麻豆三区网站 | 夜夜爽妓女| 午夜亚洲国产理论秋霞| 国产不卡的视频| 黄污污污污| 国产女同视频在线播放| 国产尤物在线三区| 久操高青| 亚洲国产高清福利视频| 四虎影视欧美| 午夜毛片高清免费不卡| 91人妻爽爽人人做人人澡| 97精品| 国产精品在线一区二区| 99re这里只有精品中心播放 | 水野优香在线观看| 午夜超爽| 另类欧美色| 色天堂综合| 国产 码在线成人网站| 欧美成人性爱视频在线播放 | 超碰欧美97资源| 亚洲性综合9| 国产高清无码一区三区二区| 欧美亚洲激情| 天美传媒av在线| 95精品在线| 亚一综合久久久久久久久久| 高精欧美色| 麻豆伊人网| 又黄又爽在线观看视频 | 国产97视频免费观看| 伊人骚琪琪亚洲天堂网站| 欧美色日本| 国产无马av| 无码精品久久久天天影视| 大香蕉伊人75| 天海翼久久| julia在线观看久久| 日本 欧美 国产一区| se吧提供国产乱老熟视频胖女人| 久久久精品,3| 欧美日韩精品久久| 热天堂一区二区| 五月丁香激情综合| 伊人网综合在线视频| 一区二区三区美女超清| 青青青在线高清视频在线一二三四区| 91亚洲丝袜| 欧美情色男人的天堂| 五月天伊人| 在线视频日韩欧美国产| 国产亚洲美日韩Aⅴ中文字幕无码成人| 少妇久久久久久| 91精品91久久久久77777| 欧美熟妇亚洲版| 伊人成人情色综合| 久久9 9 9精品| 亚洲熟妇自偷自拍另欧美| 一级啊性爱在线视频| 久久成人国产精品| 日韩 国产 欧美自拍| 99999精品| 校园春色AV天堂| 深夜激情| 女生看匆91网站| 在线播放中文字幕| 亚洲一区制服诱惑| 九九九九免费高| 九九九网页| 久久人人妻| 骚货人妻偷情自拍在线视频| 狠狠爱综合网| 久热伊人| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 日韩欧美蜜桃精品久久中文字幕久久| 亚洲天堂日本| 综合九九| 欧美综合传媒| 中文字幕熟女人妻丝袜丝| 激情婷婷丁香| 日韩乱插| 最新啪啪视频| 丁香六月综合激情| 天天天天干| 国产精品老熟女一区二区| www.狠狠| 青娱乐 成人娱乐在线| 日本高清电影欧美色图| 欧美制服另类丝袜| 激情文学 国产一二三aV| 99国产精品久久久久久久成人热| 97爱爱影院| #NAME?| 加勒比少妇AV婷婷六月天超碰超碰| 狠狠爱夜夜干| 天天躁日日躁狠狠狠躁| 色综91| 中文?日韩?免费?精品| 欧美中文字幕日韩在线| 思思热在线cao| 日本高清一区二区在线| 99久久婷婷| 污到发麻的视频 国产| 欧美久久久15P| 国产第11页| 亚洲精品熟妇1区2区3区。| 91人人| 激情小说日韩无码| 91精品人妻电影| 欧美日韩成人| 日本啊啊啊啊啊视频| 91欧美综合在线| 就去色综合| 91欧美大片| 成人七区| 日韩人妻少妇 一区二区三区| 久久久久久大| 嗯嗯啊好大| 色欲久久99国产精品久久久久久| 精品国产三级av韩国在线| 小视频玖玖| 國產尤物AV尤物在線觀看| 亚洲AV无码天美传媒一区| 午夜欧美J进J出白浆流出久久久| 欧美美女后入| 99精品丰满人妻无码| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 国产精品成久久久久午夜午夜| 嗯啊视频免费在线观看| 99视频内射三四| 欧美色图私拍91| 青青草依人大香蕉| 美女操逼A A| 我要看免费韩日黄片| 欧美精品成人亚洲| 99热这里只有精品1| 肏逼视频日本| a级理论午夜日本| 无码一区二区三区四区五区六区七区八区九区十区视频 | 午夜男人一级A片7777| 日韩内射视频| 91色欧美| 亚洲导航深夜福利| 中文字幕91综合| 久久精品夜色国产亚洲AV| 欧美亚洲小说| 蜜乳AV色欲AVAV无码| 天天摸夜夜摸| 超清中文乱码字幕| 性爱av在线免费观看| 日韩啪啪啪视频| 性91| 少妇高潮喷水无套久久久久久| 国产强奸乱伦第1页| 在线性黄高清免费视频| 啊啊啊啊在线观看网址| 亚洲人妻在线精品| 秋霞视频一区二区| 五月开心久久AV官网| 国产农村妇女精品| 六月婷婷综合| 欧美日韩国产精品久久色婷婷| 99久久精品无码一区二区毛片免费| 国产九九九九九九九九| www…国产操逼| aa片毛片| AA特级绝黄| 亚洲综合码| 青青草中文字幕| 欧美做爰无码A片视频| 久久久久久中文版| 亚洲影院成人| 欧美人妻久久精品二区三区| 色婷婷综合久久中文字幕雪峰| 91一区二匹| 久久ww| 丝袜视频网国产90| 精品久久久久av影院| 91天美传媒在线| 日本色色视频网站| 中文字幕乱码人妻一区二区三区,99精品 | 亚欧高清| 精品国产一区二区久久| 欧美后入| 日本久久久久久久久| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 在线视频免费播放一区| 亚洲91网站| 777琪琪午夜免费A片| 日日夜夜草草草| 伊人一区二区在线播放| 亚欧中文字幕在线视频| 成人av性爱电影在线观看| 91在线色| 久久69精品久久久久久久| 麻豆AV96熟妇人妻| 欧美性生活免费网| 黄资源| 在线播放一级无码视频| 国产日韩人人| 手机看片1024你懂的国产| 亚洲综合大片| 色官网在线| 欧洲人妻视频| 精品久久久九九九孕妇| 欧美色宗合| caopeng97人妻| 秋霞无码av鲁丝片一区| 久久久91福利姬| 曰韩无码777| 青青草福利视频| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 日日骚一区二区三区| 久久久精品国产亚洲伊人| 天天射夜夜操| 久久综合女优| 很黄很污的免费网站| 丰满人妻一区二区三区免费| 一区三区啪啪| 亚洲在线91| 操人妻丝袜高跟| 一级岛国大片| 亚洲男人天堂2| 久久久久成人亚洲国产| 国产日韩美女小穴视频网站不卡| 六月色婷婷| 欧美高清18A片| 操淫穴亚洲五月丁香 | 91小视频| 一级性爱网| 天操老女人| 911粉嫩人妻| 亚洲国产熟妇综合色专区| 亚洲欧洲色情高清| 免费黄色片子| 97超碰磁| 9精品久久久久| 高树玛利亚无码流出| 乱伦3P视频| 日本韩高清无砖码22o| 粉嫩小泬久久久一区二区| 亚洲欧美日韩综合在线尤物| 亚欧无码线免费观看视频| 五毛骚逼极品美女怕怕| 天综合网| 十八禁的黄污污免费网站| 大香蕉欧美| 91无码人妻| 日韩欧美女优电影| 亚洲天堂7777| 日本一区二区中文字幕久久| 学生妹天天看| 日本人妻A片成人免费看片| 日韩黄片影院| 东京太热男人的天堂久久久| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 三级日本一区二区三区| 五十路熟女在线不卡观看一区二区| 又黑又大又粗| 操美女高潮抽搐白浆| 一本色道综合久久欧美| 久久伊人东京热| 久久久久9| 久悠悠av| 99热国产| 国产最新小视频在线播放下载| 男人天堂新在线| 亚洲综合69| 欧美综合自拍成人自拍第二十页| 男人a天堂手机在线版| 国产精品免费久久久久久久久久| 人妻天天爽夜夜爽2| 高跟伊人julia ann| 夜夜中出国产| 精品伊人久久久大香线蕉小说| 国产成人无码a| 亚洲毛片基地专区| 精品无人区麻豆乱码1区2区图片| 欧洲Au麻豆| 6080yy午夜理论三级一区二区三区无码| 东北丰满熟女国产一区| 人妻少妇久久中文字幕一区二区 麻豆| 超碰97人妻自拍| 人妻熟女一区二区| 60秒试看最爽10分钟网站| 国产av高清版| www.91色综合| 色婷婷基地| 丁香五月激情婷婷| 性爱乱伦网址| 伊人久久综合精品欧美| 亚洲国产奇米影视久久| 秋霞一级鲁丝片A片| 精品午夜福利| 亚洲欧美不卡线| 91n处女在线观看| 人妻色情天天操| 中文字幕av丝袜| 欧美伦乱爱| 大香蕉男人的天堂| 亚洲熟妇无码一区二区三区| 99国内精品| 日韩三级久久久| 丁香五月电影| AA丁香综合激情| 99精品热| 91碰碰| 屌色在线97视频| 狠狠操狠狠插| 天天日少妇逼AV| 蜜臀久久99精品久久久久久久久| 五月丁香影院| 无码免费一区二区三区啪啪| 亚洲有码 视频一区| 亚洲性爱高潮影院| 美女啊啊啊啊啊啊啊| 91人妻视频在线| 日韩二三区| 综合 青草 伊久久 影院 综合| 久久精品老司| 青青草乱入乱欲视频在线观看| 九九九九九九成人| 麻豆人妻偷人精品无码视频| 精品少妇人妻一区二区三区| 另类老少妇| 九九草| 国产激情视频一区区三区| 秋霞 色色| 综合五月婷婷亚洲一区| 熟女精品va中文字幕| 国产高清MV操逼视频| 国产成人久久久精品免费AV| A久久| 日韩美脚一区二区网站| 99re只有精品| 色妇91| 欧美综色欧| 一区二区三区视频| 又粗又长又爽在线观看| 亚洲二区精品在线观看| 99色在线| 天天干天天日天天射黄色大片| 欧美一区二区日韩传媒搭讪精品| 偷拍五区| 国产综合久| 免费精品无码一级毛片牛牛影视 | 久久综合av| 久久蜜桃一区二区| 人妻少妇久久中文字幕一区二区 麻豆| 亚洲影院无码在线| 8050午夜少妇无码| 欧美制服网站美腿丝袜| 97色论| 亚洲日韩资源| 日本欧美中文字幕| 欧美日韩国产高清在线一二三区| 亚洲精品亚洲人成人网| 中文字幕丝袜人妻| 欧美高潮| 绯色一区二区三区不卡少妇| 人人人人插| 人妻天堂综合网| 91超碰碰在线| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 欧美性性性| 手机在线A片| 久久久久免费少妇| 久久久久久久 九九九九九九九| 大屁股熟女一区二区三区| 老熟妇91| 久久天天艹| 国产精品交换一区二区| 亚州综合AⅤ| 黄页网站成人免费| 日熟女| 色色丁香| 久久精品99久久久久久| 超碰2017| 欧美网站免费| 日日夜夜噜| 激情欧美97| 91久久精品中文字幕| 久久免费中文字幕在线观看| 91精品国产乱码| 欧美999| 综合久| 综合av影片| 综合伊人激情| 99激情| 99re综合伊人| 国产特级毛片AAAAAA高潮流水 | 亚州欧美另类| 成人三一级一片aaa| 午夜人妻精品综合在线| 天天操天天7| 乱性AV| 九九热九九热| 美女天天干| 日逼逼免费看| 国产嫩草精品A88AV在线| 清纯唯美第一页| 午夜精品五区| 91久久堂| 日本伦乱九九九综合| 91黑丝露脚| 人妻少妇久久| 伊人久久大香线蕉无码| 无码视频一区二区| 成人精品在线免费视频| 涩五月婷婷| 超碰97人妻自拍| 乱伦日本色图AⅤ| 欧美第二页午夜| 日韩无码三级影院| 超碰97资源大奶| 日韩无码人妻| 国产超碰国产97| 91亚洲综合在线| 五月婷在线| 天天射天天色成人| 狠狠色婷婷777| 亚洲另类色综合网站| 风流老熟女一区二区三区l| 欧美91丝袜| 少妇人妻太紧太深av| 久热伊人99re| 中文字幕欧美日韩三级| 丰满人妻一区二区三区四 | 在线播放欧洲免费av| 日本在线视频导航| 另类专区加勒比| 欧亚乱色熟女一区二区| 一区二区视频你懂的| 2019天天干天天操| 亚州欧美一区| 久草国产在线视频| 欧美大香蕉97| 中文字幕欧美日韩三级| 人妻日日夜夜精品| 97欧美视频| 东北女人被操| 日韩中文字幕国产| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 南澳成人一级片在线播放| 国产精品久久久久综合| 四虎884| 久久激情网| 九九九九九精品视频| 国产日本熟女顶级一区二区三区视频| 亚州91| 91精品人妻一区二区三区蜜桃臀 | 日产欧美电影一区二区三区| 日本精品免费一区二区三区四区| 日韩操逼HD| 国产AV人人 夜夜人人澡| 日韩操逼HD| 超碰久久综合| 欧美激情综合色综合啪啪五月| 91麻豆天美传媒在线| 久久久艹艹艹| 八戒无码国产午夜福利| 成人精品一区二区三区| 欧美刺激色黄片免费看| 国产精品久久久久9999小说| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 亚洲欧美在线综合| 日本日皮视频逼| 欧成人精品一区二区三区| 亚洲城人男人的天堂| 99re国产精品视频| 我要色综合网站| 天天添天天干电影| 男女做爰猛烈动高潮A片免费应用| 操淫穴亚洲五月丁香 | 蜜桃久久综合视频| 97超碰磁| 天天操熟妇| 91大神电影天堂| 少妇3P性爱自拍| 超碰97COm中文| 97玖玖超碰| 国产亚州日韩欧美看片| 亚欧色图在线激情| 夜精品久无码| 99综合视频一体| 18禁止看精品中文字幕| 久久久久久91香蕉国产| 欧美麻豆成人同性GⅤ在线| 亚洲欧美色图片| 插入粉嫩少妇视频| 久久久草成人网站久久久草成人久久久草久久久| 天天爽夜夜爽夜夜爽精| 精品丰满熟妇人妻一区| 99r九九| 日韩精品一区二区三区色欲| 永久电影三级在线观看| 超碰97资源网亚洲| 啊啊啊好湿久久| 国产色精品午夜大片| 97超碰色色| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 中文字幕第23区| 久都青青视频| 丁香九月激情啪| {男男暴菊gay无套网站| 精品国产乱码久久久久久日本公司| 久久天天摸| 久久肏大逼| 免费福利视频中文字幕| 欧美宗合色| AV色五月| 国产污视频麻豆传媒一区二区| 蜜臀操逼黄色视频操的好爽| 搡老熟女免费视频| 亚洲狠狠入| 中文字幕诱惑制服人妻丝袜美丝袜美| 极品色社| 国产亚洲99久久精品| 成人精品一区二区91毛片不卡| 中文字幕97| 婷婷人妻激情| 国产性爱欧美性爱在线| 中文久久一区| 中文字幕一区av| 国产做?爰片久久毛片?片美国| 思思视频免费看网站| 亚洲情色欧美| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚洲综合激情五月久久| 日本人妻中文字幕精品| 射久久| 夜夜嗨一区| 1024手机看片欧美日韩| 中文乱码99| 白嫩嫩一区| 色蜜AV| 九九九综合精品| 最新加勒比丝袜在线| 免费一级毛片在线视频观看| 国产日逼视频| 中文字幕精品免费一区二区| 91丝袜在线观看| 亚洲日韩电影| 97K超碰在线| 久久香蕉国产线看观看亚洲女人 | 免费男人的天堂| 免看60秒涩涩视频| 精品一区二区三区四区外站| 亚洲中文字幕日产无码久久| 好爽,再快点啊哈嗯嗯嗯嗯| www.99热| 99热在线播放| 久久婷色| 亚洲va综合va国产va中文| 成人日本视频人妻在线| 国产亚洲禁久一区二区| 欧美日韩精品一区二区三区高清| 精品成人亚洲午夜电影| 国产精品探花色| 天堂俺去俺来也www久久婷婷| 日本成人免费一区二区三区| 啊v在线观看视频| 91综合熟女| 97免费在线观看| 蜜臀久久99精品久久久| 91狠狠综| 一级二级三级黑人无码| 亚洲日韩在线a不卡99精品| 91成人高清在线观看| 91伊人久| 国产三级多多影院2022国产AA一级毛片无码| 亚洲av综合伊人久久| 日本阿v天堂在线观看| 国产真乱mangent| 99久久精品无码一区二区毛片免费| 亚洲 欧美 制服 另类 自拍| 一个人免费视频观看在线WWW | 黄片www.| 五月丁香啪| 超碰久久性爱| 青青国产在线拍揄自揄拍| 日韩欧美偷拍美女视频| 中文字幕人妻色偷偷久久皮| 97国产色图| 久久大陆| 玖玖爱视频网站| 大香蕉综合网| 久久久久久久伊人精品| 中文字幕日韩人妻视频一区二区三区| 在线v中文字幕一区二区三区| 91日本在线观看| 久久久久性熟视频| 午夜福利区| 国产自偷| 九九草| 变态乱伦伪娘灌肠一区二区| 旡码电影特区| AVE乱伦| 日韩精品人妻一| 亚欧高清在线| 欧洲无码一区二区| 天天看人人操屄犊摸阴| 性九九九九九九| 丰满人妻-区二区三区免费看 | 日韩探花精品在线视频| 99精品成人免费看| 美国aaaaa一级黄片| 深夜啪啪啪视频免费| 五月天伊人| 日韩特一级久久| 欧美综合另类| 美国一区二区三区视频| 99爱爱| 大香蕉在线视频重口味毛片在线| 激情婷婷丁香| 久久久久国产精品久久久| 亚洲一区二区三区不卡国产欧美| 国产久久久久久久久一区二区| 青青草原人妻| 91网站18+| 东京热一区二区中文字幕| 国产精品探花视频| 国产精品一区二区三区在线密挑| 亚洲一二三| 亚洲欧美91| 大香蕉久| 夜夜爽77777| 五月天亚洲网| 91爱| 操逼网免费无码视频| 久久国产精品91| 99热这里只有精品1| 婷婷伊人五月| 日本久久99| 欧美日韩精品久久| 91无遮挡| 国产女性无套 免费观看| 亚洲美欧999| 色路综合| 日韩人成网站在线播放| 大香蕉操久久| 国产精品一区在线播放| 久久伊人亚洲AV无码网站| 蜜桃久久综合视频| 亚州熟妇精品| 乱伦一二三区| 激情五月天婷婷| 久久久9 9 9精品| 日韩有码 一区二区三区| 亚洲中文字幕噜噜噜久久久| 加勒比海成人视频网 | 热热热热日日漂亮永久永久国产日| 亚洲另类春色| 麻豆国产免费影片| AV久日| 天天看天天日| 素人播放一区| 极品色综合| 另类小色呦| 明星性猛交ⅹxxx乱大交| 五月婷婷大香蕉| com 首页 18岁 禁区 女优 免费 精选 同城| 100啪啪视频大全| 丰满人妻一区二区三区在线| 亚洲a色| 亚洲激情在线| 久久天堂网| A 天堂在线观看视频|