精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

80%應(yīng)聘者都不及格的JS面試題

開發(fā)
寫在前面,筆者在做面試官這 2 年多的時(shí)間內(nèi),面試了數(shù)百個(gè)前端工程師,驚訝的發(fā)現(xiàn),超過 80% 的候選人對(duì)下面這道題的回答情況連及格都達(dá)不到。這究竟是怎樣神奇的一道面試題?他考察了候選人的哪些能力?對(duì)正在讀本文的你有什么啟示?且聽我慢慢道來(lái)

[[188099]]

寫在前面,筆者在做面試官這 2 年多的時(shí)間內(nèi),面試了數(shù)百個(gè)前端工程師,驚訝的發(fā)現(xiàn),超過 80% 的候選人對(duì)下面這道題的回答情況連及格都達(dá)不到。這究竟是怎樣神奇的一道面試題?他考察了候選人的哪些能力?對(duì)正在讀本文的你有什么啟示?且聽我慢慢道來(lái)

不起眼的開始

招聘前端工程師,尤其是中高級(jí)前端工程師,扎實(shí)的 JS 基礎(chǔ)絕對(duì)是必要條件,基礎(chǔ)不扎實(shí)的工程師在面對(duì)前端開發(fā)中的各種問題時(shí)大概率會(huì)束手無(wú)策。在考察候選人 JS 基礎(chǔ)的時(shí)候,我經(jīng)常會(huì)提供下面這段代碼,然后讓候選人分析它實(shí)際運(yùn)行的結(jié)果:

  1. for (var i = 0; i < 5; i++) { 
  2.  
  3.     setTimeout(function() { 
  4.  
  5.         console.log(new Date, i); 
  6.  
  7.     }, 1000); 
  8.  
  9.  
  10.   
  11.  
  12. console.log(new Date, i);  

這段代碼很短,只有 7 行,我想,能讀到這里的同學(xué)應(yīng)該不需要我逐行解釋這段代碼在做什么吧。候選人面對(duì)這段代碼時(shí)給出的結(jié)果也不盡相同,以下是典型的答案:

  • A. 20% 的人會(huì)快速掃描代碼,然后給出結(jié)果:0,1,2,3,4,5;
  • B. 30% 的人會(huì)拿著代碼逐行看,然后給出結(jié)果:5,0,1,2,3,4;
  • C. 50% 的人會(huì)拿著代碼仔細(xì)琢磨,然后給出結(jié)果:5,5,5,5,5,5;

只要你對(duì) JS 中同步和異步代碼的區(qū)別、變量作用域、閉包等概念有正確的理解,就知道正確答案是 C,代碼的實(shí)際輸出是:

  1. 2017-03-18T00:43:45.873Z 5 
  2.  
  3. 2017-03-18T00:43:46.866Z 5 
  4.  
  5. 2017-03-18T00:43:46.868Z 5 
  6.  
  7. 2017-03-18T00:43:46.868Z 5 
  8.  
  9. 2017-03-18T00:43:46.868Z 5 
  10.  
  11. 2017-03-18T00:43:46.868Z 5  

接下來(lái)我會(huì)追問:如果我們約定,用箭頭表示其前后的兩次輸出之間有 1 秒的時(shí)間間隔,而逗號(hào)表示其前后的兩次輸出之間的時(shí)間間隔可以忽略,代碼實(shí)際運(yùn)行的結(jié)果該如何描述?會(huì)有下面兩種答案:

  • A. 60% 的人會(huì)描述為:5 -> 5 -> 5 -> 5 -> 5,即每個(gè) 5 之間都有 1 秒的時(shí)間間隔;
  • B. 40% 的人會(huì)描述為:5 -> 5,5,5,5,5,即第 1 個(gè) 5 直接輸出,1 秒之后,輸出 5 個(gè) 5;

這就要求候選人對(duì) JS 中的定時(shí)器工作機(jī)制非常熟悉,循環(huán)執(zhí)行過程中,幾乎同時(shí)設(shè)置了 5 個(gè)定時(shí)器,一般情況下,這些定時(shí)器都會(huì)在 1 秒之后觸發(fā),而循環(huán)完的輸出是立即執(zhí)行的,顯而易見,正確的描述是 B。

如果到這里算是及格的話,100 個(gè)人參加面試只有 20 人能及格,讀到這里的同學(xué)可以仔細(xì)思考,你及格了么?

追問 1:閉包

如果這道題僅僅是考察候選人對(duì) JS 異步代碼、變量作用域的理解,局限性未免太大,接下來(lái)我會(huì)追問,如果期望代碼的輸出變成:5 -> 0,1,2,3,4,該怎么改造代碼?熟悉閉包的同學(xué)很快能給出下面的解決辦法:

  1. for (var i = 0; i < 5; i++) { 
  2.  
  3.     (function(j) {  // j = i 
  4.  
  5.         setTimeout(function() { 
  6.  
  7.             console.log(new Date, j); 
  8.  
  9.         }, 1000); 
  10.  
  11.     })(i); 
  12.  
  13.  
  14.   
  15.  
  16. console.log(new Date, i);  

巧妙的利用 IIFE(Immediately Invoked Function Expression:聲明即執(zhí)行的函數(shù)表達(dá)式)來(lái)解決閉包造成的問題,確實(shí)是不錯(cuò)的思路,但是初學(xué)者可能并不覺得這樣的代碼很好懂,至少筆者初入門的時(shí)候這里琢磨了一會(huì)兒才真正理解。

有沒有更符合直覺的做法?答案是有,我們只需要對(duì)循環(huán)體稍做手腳,讓負(fù)責(zé)輸出的那段代碼能拿到每次循環(huán)的 i 值即可。該怎么做呢?利用 JS 中基本類型(Primitive Type)的參數(shù)傳遞是按值傳遞(Pass by Value)的特征,不難改造出下面的代碼:

  1. var output = function (i) { 
  2.  
  3.     setTimeout(function() { 
  4.  
  5.         console.log(new Date, i); 
  6.  
  7.     }, 1000); 
  8.  
  9. }; 
  10.  
  11.   
  12.  
  13. for (var i = 0; i < 5; i++) { 
  14.  
  15.     output(i);  // 這里傳過去的 i 值被復(fù)制了 
  16.  
  17.  
  18.   
  19.  
  20. console.log(new Date, i);  

能給出上述 2 種解決方案的候選人可以認(rèn)為對(duì) JS 基礎(chǔ)的理解和運(yùn)用是不錯(cuò)的,可以各加 10 分。當(dāng)然實(shí)際面試中還有候選人給出如下的代碼:

  1. for (let i = 0; i < 5; i++) { 
  2.  
  3.     setTimeout(function() { 
  4.  
  5.         console.log(new Date, i); 
  6.  
  7.     }, 1000); 
  8.  
  9.  
  10.   
  11.  
  12. console.log(new Date, i);  

細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),這里只有個(gè)非常細(xì)微的變動(dòng),即使用 ES6 塊級(jí)作用域(Block Scope)中的 let 替代了 var,但是代碼在實(shí)際運(yùn)行時(shí)會(huì)報(bào)錯(cuò),因?yàn)?**那個(gè)輸出使用的 i 在其所在的作用域中并不存在,i 只存在于循環(huán)內(nèi)部。

能想到 ES6 特性的同學(xué)雖然沒有答對(duì),但是展示了自己對(duì) ES6 的了解,可以加 5 分,繼續(xù)進(jìn)行下面的追問。

追問 2:ES6

有經(jīng)驗(yàn)的前端同學(xué)讀到這里可能有些不耐煩了,扯了這么多,都是他知道的內(nèi)容,先別著急,挑戰(zhàn)的難度會(huì)繼續(xù)增加。

接著上文繼續(xù)追問:如果期望代碼的輸出變成 0 -> 1 -> 2 -> 3 -> 4 -> 5,并且要求原有的代碼塊中的循環(huán)和兩處 console.log 不變,該怎么改造代碼?新的需求可以精確的描述為:代碼執(zhí)行時(shí),立即輸出 0,之后每隔 1 秒依次輸出 1,2,3,4,循環(huán)結(jié)束后在大概第 5 秒的時(shí)候輸出 5(這里使用大概,是為了避免鉆牛角尖的同學(xué)陷進(jìn)去,因?yàn)?JS 中的定時(shí)器觸發(fā)時(shí)機(jī)有可能是不確定的,具體可參見 How Javascript Timers Work)。

看到這里,部分同學(xué)會(huì)給出下面的可行解:

  1. for (var i = 0; i < 5; i++) { 
  2.  
  3.     (function(j) { 
  4.  
  5.         setTimeout(function() { 
  6.  
  7.             console.log(new Date, j); 
  8.  
  9.         }, 1000 * j));  // 這里修改 0~4 的定時(shí)器時(shí)間 
  10.  
  11.     })(i); 
  12.  
  13.  
  14.   
  15.  
  16. setTimeout(function() { // 這里增加定時(shí)器,超時(shí)設(shè)置為 5 秒 
  17.  
  18.     console.log(new Date, i); 
  19.  
  20. }, 1000 * i);  

不得不承認(rèn),這種做法雖粗暴有效,但是不算是能額外加分的方案。如果把這次的需求抽象為:在系列異步操作完成(每次循環(huán)都產(chǎn)生了 1 個(gè)異步操作)之后,再做其他的事情,代碼該怎么組織?聰明的你是不是想起了什么?對(duì),就是 Promise。

可能有的同學(xué)會(huì)問,不就是在控制臺(tái)輸出幾個(gè)數(shù)字么?至于這樣殺雞用牛刀?你要知道,面試官真正想考察的是候選人是否具備某種能力和素質(zhì),因?yàn)樵诂F(xiàn)代的前端開發(fā)中,處理異步的代碼隨處可見,熟悉和掌握異步操作的流程控制是成為合格開發(fā)者的基本功。

順著下來(lái),不難給出基于 Promise 的解決方案(既然 Promise 是 ES6 中的新特性,我們的新代碼使用 ES6 編寫是不是會(huì)更好?如果你這么寫了,大概率會(huì)讓面試官心生好感):

  1. const tasks = []; 
  2.  
  3. for (var i = 0; i < 5; i++) {   // 這里 i 的聲明不能改成 let,如果要改該怎么做? 
  4.  
  5.     ((j) => { 
  6.  
  7.         tasks.push(new Promise((resolve) => { 
  8.  
  9.             setTimeout(() => { 
  10.  
  11.                 console.log(new Date, j); 
  12.  
  13.                 resolve();  // 這里一定要 resolve,否則代碼不會(huì)按預(yù)期 work 
  14.  
  15.             }, 1000 * j);   // 定時(shí)器的超時(shí)時(shí)間逐步增加 
  16.  
  17.         })); 
  18.  
  19.     })(i); 
  20.  
  21.  
  22.   
  23.  
  24. Promise.all(tasks).then(() => { 
  25.  
  26.     setTimeout(() => { 
  27.  
  28.         console.log(new Date, i); 
  29.  
  30.     }, 1000);   // 注意這里只需要把超時(shí)設(shè)置為 1 秒 
  31.  
  32. });  

相比而言,筆者更傾向于下面這樣看起來(lái)更簡(jiǎn)潔的代碼,要知道編程風(fēng)格也是很多面試官重點(diǎn)考察的點(diǎn),代碼閱讀時(shí)的顆粒度更小,模塊化更好,無(wú)疑會(huì)是加分點(diǎn)。

  1. const tasks = []; // 這里存放異步操作的 Promise 
  2.  
  3. const output = (i) => new Promise((resolve) => { 
  4.  
  5.     setTimeout(() => { 
  6.  
  7.         console.log(new Date, i); 
  8.  
  9.         resolve(); 
  10.  
  11.     }, 1000 * i); 
  12.  
  13. }); 
  14.  
  15.   
  16.  
  17. // 生成全部的異步操作 
  18.  
  19. for (var i = 0; i < 5; i++) { 
  20.  
  21.     tasks.push(output(i)); 
  22.  
  23.  
  24.   
  25.  
  26. // 異步操作完成之后,輸出***的 i 
  27.  
  28. Promise.all(tasks).then(() => { 
  29.  
  30.     setTimeout(() => { 
  31.  
  32.         console.log(new Date, i); 
  33.  
  34.     }, 1000); 
  35.  
  36. });  

讀到這里的同學(xué),恭喜你,你下次面試遇到類似的問題,至少能拿到 80 分。

我們都知道使用 Promise 處理異步代碼比回調(diào)機(jī)制讓代碼可讀性更高,但是使用 Promise 的問題也很明顯,即如果沒有處理 Promise 的 reject,會(huì)導(dǎo)致錯(cuò)誤被丟進(jìn)黑洞,好在新版的 Chrome 和 Node 7.x 能對(duì)未處理的異常給出 Unhandled Rejection Warning,而排查這些錯(cuò)誤還需要一些特別的技巧(瀏覽器、Node.js)。

追問 3:ES7

既然你都看到這里了,那就再堅(jiān)持 2 分鐘,接下來(lái)的內(nèi)容會(huì)讓你明白你的堅(jiān)持是值得的。

多數(shù)面試官在決定聘用某個(gè)候選人之前還需要考察另外一項(xiàng)重要能力,即技術(shù)自驅(qū)力,直白的說就是候選人像有內(nèi)部的馬達(dá)在驅(qū)動(dòng)他,用漂亮的方式解決工程領(lǐng)域的問題,不斷的跟隨業(yè)務(wù)和技術(shù)變得越來(lái)越牛逼,究竟什么是牛逼?建議閱讀程序人生的這篇剖析。

回到正題,既然 Promise 已經(jīng)被拿下,如何使用 ES7 中的 async await 特性來(lái)讓這段代碼變的更簡(jiǎn)潔?你是否能夠根據(jù)自己目前掌握的知識(shí)給出答案?請(qǐng)?jiān)谶@里暫停 1 分鐘,思考下。

下面是筆者給出的參考代碼:

  1. // 模擬其他語(yǔ)言中的 sleep,實(shí)際上可以是任何異步操作 
  2.  
  3. const sleep = (timeountMS) => new Promise((resolve) => { 
  4.  
  5.     setTimeout(resolve, timeountMS); 
  6.  
  7. }); 
  8.  
  9.   
  10.  
  11. (async () => {  // 聲明即執(zhí)行的 async 函數(shù)表達(dá)式 
  12.  
  13.     for (var i = 0; i < 5; i++) { 
  14.  
  15.         await sleep(1000); 
  16.  
  17.         console.log(new Date, i); 
  18.  
  19.     } 
  20.  
  21.   
  22.  
  23.     await sleep(1000); 
  24.  
  25.     console.log(new Date, i); 
  26.  
  27. })();  

總結(jié)

感謝你花時(shí)間讀到這里,相信你收獲的不僅僅是用 JS 精確控制代碼輸出的各種技巧,更是對(duì)于前端工程師的成長(zhǎng)期許:扎實(shí)的語(yǔ)言基礎(chǔ)、與時(shí)俱進(jìn)的能力、強(qiáng)大技術(shù)自驅(qū)力。

責(zé)任編輯:龐桂玉 來(lái)源: 前端大全
相關(guān)推薦

2020-12-28 13:28:01

AIAI面試應(yīng)聘者

2024-09-05 13:02:41

2024-07-16 13:24:38

2023-11-13 07:37:36

JS面試題線程

2011-12-14 20:23:31

HTC

2010-04-20 21:48:48

2009-05-08 11:21:15

面試故事面試主考官

2010-08-30 20:51:15

名企面試題

2012-12-27 16:50:54

大學(xué)生應(yīng)聘面試

2018-04-12 17:31:13

區(qū)塊鏈安全應(yīng)用程序

2018-04-11 11:20:39

區(qū)塊鏈招聘創(chuàng)業(yè)者

2024-02-27 14:34:13

2015-04-22 12:19:42

JAVAJAVA面試題答案解析

2015-11-24 10:13:49

應(yīng)聘大數(shù)據(jù)校園

2019-05-15 17:20:20

IT包裝Java

2010-08-12 21:54:17

富士康招聘

2022-04-25 21:50:09

前端JS面試題

2009-03-30 08:50:50

2025-05-30 09:17:00

2019-07-18 15:42:53

Redisoffer數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产老头老太做爰视频| 韩国三级在线看| caoporn国产精品免费视频| 久久福利视频一区二区| 欧美国产日本在线| 国产黄色大片免费看| 欧州一区二区三区| 欧美日韩免费在线| 亚洲一二区在线| 丰满肥臀噗嗤啊x99av| 性xx色xx综合久久久xx| 久久影视电视剧免费网站清宫辞电视| 欧美大片免费播放器| 亚洲精品69| 色综合天天视频在线观看| 成年人免费观看的视频| 香蕉国产在线视频| 国产精品66部| 国产成人精品一区二区| 免费无遮挡无码永久在线观看视频| 九九在线精品| 亚洲第一区第一页| a级大片免费看| 视频精品导航| 色综合一区二区| 亚洲精品无码国产| gogogogo高清视频在线| 国产亚洲女人久久久久毛片| 国产精品免费一区二区三区观看| 日本一区二区三区久久| 国产精品久久国产愉拍| 美女黄色丝袜一区| 992在线观看| 精品国产一区二区三区av片| 亚洲精品美女在线| 黄色激情在线观看| 天堂av一区| 欧美精品电影在线播放| 91看片在线免费观看| 手机av在线| 亚洲成人动漫精品| 老司机午夜网站| 黄色的网站在线观看| 亚洲国产精品二十页| 日韩精品欧美一区二区三区| 四虎精品在线| 成人h版在线观看| 国产精品传媒毛片三区| 亚洲精选一区二区三区| 高清国产一区二区三区| 99在线热播| 亚洲春色一区二区三区| 粉嫩高潮美女一区二区三区 | 成人午夜视频在线观看免费| 七七久久电影网| 亚洲伊人色欲综合网| 欧美少妇一区二区三区| 欧美伦理免费在线| 亚洲第一搞黄网站| 日本韩国欧美在线观看| 国模私拍一区二区国模曼安| 丁香五六月婷婷久久激情| 免费黄色日本网站| 成人免费福利| 欧美日韩二区三区| 青娱乐精品在线| 高潮按摩久久久久久av免费| 亚洲激情第一页| 日本黄色特级片| 日韩情爱电影在线观看| 久久视频精品在线| 国产在线欧美在线| 免费视频久久| 国产精品一区二区三区免费视频 | 欧美三级网站在线观看| 青草av.久久免费一区| 成人免费在线视频网址| 午夜精品久久久久久久96蜜桃| 成人免费视频app| 久久久久久久久久码影片| 都市激情在线视频| 中文字幕亚洲在| av在线免费观看国产| 丝袜诱惑一区二区| 欧美日韩一区二区电影| 男人添女人荫蒂国产| 竹菊久久久久久久| 久久视频免费在线播放| 日本少妇在线观看| 日本va欧美va欧美va精品| 亚洲一区久久久| 免费资源在线观看| 亚洲人成影院在线观看| 亚洲中文字幕无码专区| 欧美一级免费| 亚洲精品久久久久中文字幕欢迎你| 精品无人区无码乱码毛片国产 | 久久中文精品视频| 天天爽夜夜爽夜夜爽精品| 另类调教123区| 国产精品一区二区欧美黑人喷潮水| 国模吧精品人体gogo| 亚洲久草在线视频| av无码精品一区二区三区| 欧美黄视频在线观看| 日韩精品在线免费观看视频| 国产麻豆视频在线观看| 久久经典综合| 国产传媒一区二区| 午夜视频在线免费观看| 色综合久久综合网| 黄色av电影网站| 91综合久久一区二区| 国产91|九色| а√中文在线资源库| 中文字幕不卡在线播放| 日韩av片在线看| 99国产精品免费网站| 中文字幕欧美精品日韩中文字幕| 国产精品xxxx喷水欧美| 国产在线国偷精品产拍免费yy| 欧美日韩最好看的视频| 天堂亚洲精品| 欧美一区二区黄| www中文在线| 丝袜美腿亚洲色图| 久久精品午夜一区二区福利| 久久不射影院| 91精品在线麻豆| 日韩一区二区三区四区视频| 日韩精品一二三区| 狠狠爱一区二区三区| 亚洲丝袜精品| 91精品国产综合久久久蜜臀图片| 538精品视频| 久久久精品性| 欧美伦理一区二区| 26uuu亚洲电影| 日韩电视剧在线观看免费网站| 久久免费视频播放| 国产成人啪午夜精品网站男同| 一本—道久久a久久精品蜜桃| 国产精品.xx视频.xxtv| 在线观看视频99| 自拍偷拍精品视频| 国产精品福利av| 一本色道久久亚洲综合精品蜜桃| 精品国产91| 国产精品av网站| 极品白浆推特女神在线观看 | 91av俱乐部| 国产成人三级| 国产精品揄拍500视频| 免费在线看黄网站| 3d动漫精品啪啪1区2区免费| 欧美三级小视频| 成人一级片网址| 日韩欧美一区三区| 国产伦精品一区二区三区视频 | 中文天堂在线播放| 亚洲欧洲成人精品av97| 欧美高清精品一区二区| 国产精品mm| 久精品国产欧美| 日韩在线观看不卡| 精品国产一区二区三区四区在线观看 | 日本高清无吗v一区| 欧美丰满老妇熟乱xxxxyyy| 麻豆精品蜜桃视频网站| 久久精品在线免费视频| 国产精品videossex| 欧美在线视频导航| aiai在线| 精品国产乱码久久久久久久| 国产又色又爽又黄的| 国产精品丝袜久久久久久app| 色婷婷狠狠18| 狠狠噜噜久久| 日本一区高清在线视频| 成人午夜888| 91av在线精品| 欧美激情午夜| 亚洲第一页中文字幕| 黄色一级视频免费看| 中文字幕在线不卡视频| 国产免费一区二区三区最新6| 久久一区欧美| 永久免费看av| 久久99青青| 超碰97在线资源| 日韩一级二级 | 亚洲美女自拍偷拍| 美女一区2区| 成人高清视频观看www| 水蜜桃在线视频| 欧美成人一区二区三区电影| 日本免费不卡| 欧美一级黄色录像| 日本黄色中文字幕| 亚洲综合清纯丝袜自拍| 国产熟妇久久777777| 国产成人av一区| 日本成人中文字幕在线| 欧美日韩1区2区3区| 天堂一区二区三区| 欧美韩一区二区| 91久久国产婷婷一区二区| 黄色漫画在线免费看| 久久精品国产91精品亚洲| 九九热视频在线观看| 欧美精品一区二区高清在线观看| 在线播放国产一区| 欧美性极品xxxx做受| 精品无码久久久久| 亚洲精品国产一区二区三区四区在线 | 久久久久亚洲蜜桃| 国产日韩视频一区| 久久国产精品99久久久久久老狼| 日本毛片在线免费观看| 狠久久av成人天堂| 正在播放精油久久| 欧美精品一区二区久久| 精品国产综合久久| 粉嫩精品导航导航| 91九色视频在线观看| 亚洲在线资源| 91精品国产综合久久香蕉| 日本免费久久| 国产z一区二区三区| 中老年在线免费视频| 26uuu亚洲伊人春色| 免费在线你懂的| 色吧影院999| www日韩tube| 亚洲九九九在线观看| 午夜福利理论片在线观看| 精品不卡在线视频| 亚洲va欧美va| 欧美电视剧在线看免费| 国产高清免费观看| 日韩欧美一二三区| www.狠狠干| 精品久久久久av影院| 六月丁香色婷婷| 亚洲精品久久在线| 韩日在线视频| 神马久久桃色视频| 日本成人网址| 欧美成人sm免费视频| 在线观看小视频| 欧美日韩国产成人| 999av小视频在线| 69av在线播放| 69堂免费精品视频在线播放| 国产精品激情av电影在线观看 | 中文字幕在线官网| 国产成人亚洲综合91精品| 精品成人免费一区二区在线播放| 国产精品pans私拍| 天堂久久一区| eeuss一区二区三区| 精品三级av在线导航| 久久涩涩网站| 成人久久综合| 三上悠亚免费在线观看| 伊人精品成人久久综合软件| 日韩视频第二页| 久色婷婷小香蕉久久| 国产精品19p| www欧美成人18+| 亚洲熟女少妇一区二区| 亚洲综合av网| 91午夜精品亚洲一区二区三区| 欧美在线制服丝袜| 国产av无码专区亚洲av| 亚洲高清色综合| 国产天堂素人系列在线视频| 久久色在线播放| 中文字幕乱码中文乱码51精品| 国产精品丝袜白浆摸在线| 欧美高清hd| 欧美一区免费视频| 亚洲国产精品久久久久蝴蝶传媒| 高清欧美精品xxxxx| 快she精品国产999| 中国老熟女重囗味hdxx| 久久影院视频免费| www.99re7| 色网综合在线观看| 亚洲欧美另类视频| 尤物yw午夜国产精品视频| a级毛片免费观看在线| 91极品女神在线| 国产精品欧美一区二区三区不卡| 精品久久久久久中文字幕动漫 | 亚洲图片中文字幕| 亚洲国产欧美一区二区丝袜黑人 | 久久久久久免费精品| 91av一区| 九9re精品视频在线观看re6| 欧美高清视频在线观看mv| 天天夜碰日日摸日日澡性色av| 六月丁香婷婷久久| 无码 人妻 在线 视频| 亚洲精品成人精品456| 尤物视频免费观看| 亚洲国产成人一区| 黄色一级大片在线免费看产| 日本精品va在线观看| 66精品视频在线观看| 一区二区精品在线观看| 蘑菇福利视频一区播放| 亚洲激情 欧美| 亚洲精品你懂的| 久久久免费高清视频| 欧美成人精品1314www| 在线免费观看的av网站| 国产成人激情视频| 欧美成人午夜77777| 中文字幕在线中文| 久久精品国产成人一区二区三区| 久久久无码人妻精品一区| 亚洲国产日韩在线一区模特| 国产三级按摩推拿按摩| 色午夜这里只有精品| 国产精品久久亚洲不卡| 久久久久久久久久久久久9999| 雨宫琴音一区二区在线| 亚洲区 欧美区| 一区二区三区四区乱视频| 国产精品视频久久久久久| 上原亚衣av一区二区三区| jvid一区二区三区| 日韩福利在线| 日韩av一区二区在线影视| 爱爱免费小视频| 日韩欧美主播在线| 极品白浆推特女神在线观看| 国产成人a亚洲精品| 国产精品三级| 美女网站视频黄色| 中文字幕在线不卡| 一级成人免费视频| www日韩欧美| 亚洲开心激情| 91免费黄视频| 99久久国产免费看| 亚洲欧美另类在线视频| 亚洲色图15p| 电影一区二区| 中国老女人av| 粉嫩av亚洲一区二区图片| 久久久久免费看| 亚洲精品国产电影| 26uuu亚洲电影| 性欧美大战久久久久久久免费观看| 日本视频中文字幕一区二区三区| 一二三四国产精品| 这里只有精品99re| 日本乱理伦在线| 国产在线精品二区| 欧美一区=区| 国产精品久久国产精麻豆96堂| 欧美久久久久久久久中文字幕| av片在线观看网站| 精品福利影视| 秋霞成人午夜伦在线观看| 日韩一级片大全| 欧美精品一区二区三区蜜桃视频| 在线观看特色大片免费视频| 欧美日韩一区二| 韩国av一区二区三区四区| 麻豆亚洲av成人无码久久精品| 日韩激情片免费| 久久精品国产福利| 91免费国产精品| 久久一二三国产| 97精品人妻一区二区三区在线| 欧美极品少妇xxxxⅹ免费视频| 希岛爱理av免费一区二区| 911福利视频| 五月天激情综合| 瑟瑟视频在线| 精品一区二区三区免费毛片| 裸体一区二区三区| 少妇一级淫片免费放中国| 日韩亚洲国产中文字幕| 国产精品99久久免费观看| 激情视频综合网| 亚洲一区在线观看免费观看电影高清| 嫩草研究院在线观看| 亚洲综合在线小说| 久久综合五月| 久久国产在线视频| 中文字幕精品av| 欧美大奶一区二区| 手机在线视频一区| 91高清在线观看| 国内精彩免费自拍视频在线观看网址| 亚洲国产午夜伦理片大全在线观看网站 |