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

Javascript面試中經常被問到的三個問題!

開發 前端
本文不是討論最新的 JavaScript 庫、常見的開發實踐或任何新的 ES6 函數。相反,在討論 JavaScript 時,面試中通常會提到三件事。我自己也被問到這些問題,我的朋友們告訴我他們也被問到這些問題。

 

本文不是討論***的 JavaScript 庫、常見的開發實踐或任何新的 ES6 函數。相反,在討論 JavaScript 時,面試中通常會提到三件事。我自己也被問到這些問題,我的朋友們告訴我他們也被問到這些問題。

然,這些并不是你在面試之前應該學習的唯一三件事 - 你可以通過多種方式更好地為即將到來的面試做準備 - 但面試官可能會問到下面是三個問題,來判斷你對 JavaScript 語言的理解和 DOM 的掌握程度。

讓我們開始吧!注意,我們將在下面的示例中使用原生的 JavaScript,因為面試官通常希望了解你在沒有 jQuery 等庫的幫助下對JavaScript 和 DOM 的理解程度。

問題 1: 事件委托代理

在構建應用程序時,有時需要將事件綁定到頁面上的按鈕、文本或圖像,以便在用戶與元素交互時執行某些操作。

如果我們以一個簡單的待辦事項列表為例,面試官可能會告訴你,當用戶點擊列表中的一個列表項時執行某些操作。他們希望你用 JavaScript 實現這個功能,假設有如下 HTML 代碼: 

  1. <ul id="todo-app">  
  2.   <li class="item">Walk the dog</li>  
  3.   <li class="item">Pay bills</li>  
  4.   <li class="item">Make dinner</li>  
  5.   <li class="item">Code for one hour</li>  
  6. </ul> 

你可能想要做如下操作來將事件綁定到元素: 

  1. document.addEventListener('DOMContentLoaded', function() {  
  2.   let app = document.getElementById('todo-app');  
  3.   let itimes = app.getElementsByClassName('item');  
  4.   for (let item of items) {  
  5.     item.addEventListener('click', function(){  
  6.       alert('you clicked on item: ' + item.innerHTML);  
  7.     })  
  8.   }  
  9. }) 

雖然這在技術上是可行的,但問題是要將事件分別綁定到每個項。這對于目前 4 個元素來說,沒什么大問題,但是如果在待辦事項列表中添加了 10,000 項(他們可能有很多事情要做)怎么辦?然后,函數將創建 10,000 個獨立的事件偵聽器,并將每個事件監聽器綁定到 DOM ,這樣代碼執行的效率非常低下。

在面試中,***先問面試官用戶可以輸入的***元素數量是多少。例如,如果它不超過 10,那么上面的代碼就可以很好地工作。但是如果用戶可以輸入的條目數量沒有限制,那么你應該使用一個更高效的解決方案。

如果你的應用程序最終可能有數百個事件偵聽器,那么更有效的解決方案是將一個事件偵聽器實際綁定到整個容器,然后在單擊它時能夠訪問每個列表項, 這稱為 事件委托,它比附加單獨的事件處理程序更有效。

下面是事件委托的代碼: 

  1. document.addEventListener('DOMContentLoaded', function() {  
  2.   let app = document.getElementById('todo-app');  
  3.   app.addEventListener('click', function(e) {  
  4.     if (e.target && e.target.nodeName === 'LI') {  
  5.       let item = e.target;  
  6.       alert('you clicked on item: ' + item.innerHTML)  
  7.     }  
  8.   })  
  9. }) 

問題 2: 在循環中使用閉包

閉包常常出現在面試中,以便面試官衡量你對 JS 的熟悉程度,以及你是否知道何時使用閉包。

閉包基本上是內部函數可以訪問其范圍之外的變量。 閉包可用于實現隱私和創建函數工廠, 閉包常見的面試題如下:

編寫一個函數,該函數將遍歷整數列表,并在延遲3秒后打印每個元素的索引。

經常不正確的寫法是這樣的: 

  1. const arr = [10, 12, 15, 21];  
  2. for (var i = 0; i < arr.length; i++) {  
  3.   setTimeout(function() {  
  4.     console.log('The index of this number is: ' + i);  
  5.   }, 3000);  

如果運行上面代碼,3 秒延遲后你會看到,實際上每次打印輸出是 4,而不是期望的 0,1,2,3 。

為了正確理解為什么會發生這種情況,了解為什么會在 JavaScript 中發生這種情況將非常有用,這正是面試官試圖測試的內容。

原因是因為 setTimeout 函數創建了一個可以訪問其外部作用域的函數(閉包),該作用域是包含索引 i 的循環。 經過 3 秒后,執行該函數并打印出 i 的值,該值在循環結束時為 4,因為它循環經過0,1,2,3,4并且循環最終停止在 4。

實際上有多處方法來正確的解這道題: 

  1. const arr = [10, 12, 15, 21];  
  2. for (var i = 0; i < arr.length; i++) {  
  3.   setTimeout(function(i_local){  
  4.     return function () {  
  5.       console.log('The index of this number is: ' + i_local);  
  6.     }  
  7.   }(i), 3000)  
  8.  
  1. const arr = [10, 12, 15, 21];  
  2. for (let i = 0; i < arr.length; i++) {  
  3.   setTimeout(function() {  
  4.     console.log('The index of this number is: ' + i);  
  5.   }, 3000);  

問題 3:事件的節流(throttle)與防抖(debounce)

有些瀏覽器事件可以在短時間內快速觸發多次,比如調整窗口大小或向下滾動頁面。例如,監聽頁面窗口滾動事件,并且用戶持續快速地向下滾動頁面,那么滾動事件可能在 3 秒內觸發數千次,這可能會導致一些嚴重的性能問題。

如果在面試中討論構建應用程序,出現滾動、窗口大小調整或按下鍵等事件請務必提及 防抖(Debouncing) 和 函數節流(Throttling)來提升頁面速度和性能。這兩兄弟的本質都是以閉包的形式存在。通過對事件對應的回調函數進行包裹、以自由變量的形式緩存時間信息,***用 setTimeout 來控制事件的觸發頻率。

Throttle: ***個人說了算

throttle 的主要思想在于:在某段時間內,不管你觸發了多少次回調,都只認***次,并在計時結束時給予響應。

這個故事里,‘裁判’ 就是我們的節流閥, 他控制參賽者吃東西的時機, “參賽者吃東西”就是我們頻繁操作事件而不斷涌入的回調任務,它受 “裁判” 的控制,而計時器,就是上文提到的以自由變量形式存在的時間信息,它是 “裁判” 決定是否停止比賽的依據,***,等待比賽結果就對應到回調函數的執行。

總結下來,所謂的“節流”,是通過在一段時間內無視后來產生的回調請求來實現的。只要 裁判宣布比賽開始,裁判就會開啟計時器,在這段時間內,參賽者就盡管不斷的吃,誰也無法知道最終結果。

對應到實際的交互上是一樣一樣的:每當用戶觸發了一次 scroll 事件,我們就為這個觸發操作開啟計時器。一段時間內,后續所有的 scroll 事件都會被當作“參賽者吃東西——它們無法觸發新的 scroll 回調。直到“一段時間”到了,***次觸發的 scroll 事件對應的回調才會執行,而“一段時間內”觸發的后續的 scroll 回調都會被節流閥無視掉。

現在一起實現一個 throttle: 

  1. // fn是我們需要包裝的事件回調, interval是時間間隔的閾值  
  2. function throttle(fn, interval) {  
  3.   // last為上一次觸發回調的時間  
  4.   let last = 0  
  5.   // 將throttle處理結果當作函數返回  
  6.   return function () {  
  7.       // 保留調用時的this上下文  
  8.       let context = this  
  9.       // 保留調用時傳入的參數  
  10.       let args = arguments  
  11.       // 記錄本次觸發回調的時間  
  12.       let now = +new Date()       
  13.       // 判斷上次觸發的時間和本次觸發的時間差是否小于時間間隔的閾值  
  14.       if (now - last >= interval) {  
  15.       // 如果時間間隔大于我們設定的時間間隔閾值,則執行回調  
  16.           last = now 
  17.           fn.apply(context, args);  
  18.       }  
  19.     }  
  20.  
  21. // 用throttle來包裝scroll的回調  
  22. const better_scroll = throttle(() => console.log('觸發了滾動事件'), 1000)  
  23. document.addEventListener('scroll', better_scroll) 

Debounce: ***一個參賽者說了算

防抖的主要思想在于:我會等你到底。在某段時間內,不管你觸發了多少次回調,我都只認***一次。

繼續大胃王比賽故事,這次換了一種比賽方式,時間不限,參賽者吃到不能吃為止,當每個參賽都吃不下的時候,后面10分鐘如果沒有人在吃,比賽結束,如果有人在10分鐘內還能吃,則比賽繼續,直到下一次10分鐘內無人在吃時為止。

對比 throttle 來理解 debounce: 在 throttle 的邏輯里, ‘裁判’ 說了算,當比賽時間到時,就執行回調函數。而 debounce 認為***一個參賽者說了算,只要還能吃的,就重新設定新的定時器。

現在一起實現一個 debounce: 

  1. // fn是我們需要包裝的事件回調, delay是每次推遲執行的等待時間  
  2. function debounce(fn, delay) {  
  3.   // 定時器  
  4.   let timer = null  
  5.   // 將debounce處理結果當作函數返回  
  6.   return function () {  
  7.     // 保留調用時的this上下文  
  8.     let context = this  
  9.     // 保留調用時傳入的參數  
  10.     let args = arguments  
  11.     // 每次事件被觸發時,都去清除之前的舊定時器  
  12.     if(timer) {  
  13.         clearTimeout(timer)  
  14.     }  
  15.     // 設立新定時器  
  16.     timer = setTimeout(function () {  
  17.       fn.apply(context, args)  
  18.     }, delay)  
  19.   }  
  20.  
  21. // 用debounce來包裝scroll的回調  
  22. const better_scroll = debounce(() => console.log('觸發了滾動事件'), 1000)  
  23. document.addEventListener('scroll', better_scroll) 

用 Throttle 來優化 Debounce

debounce 的問題在于它“太有耐心了”。試想,如果用戶的操作十分頻繁——他每次都不等 debounce 設置的 delay 時間結束就進行下一次操作,于是每次 debounce 都為該用戶重新生成定時器,回調函數被延遲了不計其數次。頻繁的延遲會導致用戶遲遲得不到響應,用戶同樣會產生“這個頁面卡死了”的觀感。

為了避免弄巧成拙,我們需要借力 throttle 的思想,打造一個“有底線”的 debounce——等你可以,但我有我的原則:delay 時間內,我可以為你重新生成定時器;但只要delay的時間到了,我必須要給用戶一個響應。這個 throttle 與 debounce “合體”思路,已經被很多成熟的前端庫應用到了它們的加強版 throttle 函數的實現中: 

  1. // fn是我們需要包裝的事件回調, delay是時間間隔的閾值  
  2. function throttle(fn, delay) {  
  3.   // last為上一次觸發回調的時間, timer是定時器  
  4.   let last = 0timer = null  
  5.   // 將throttle處理結果當作函數返回   
  6.   return function () {   
  7.     // 保留調用時的this上下文  
  8.     let context = this  
  9.     // 保留調用時傳入的參數  
  10.     let args = arguments  
  11.     // 記錄本次觸發回調的時間  
  12.     let now = +new Date()    
  13.     // 判斷上次觸發的時間和本次觸發的時間差是否小于時間間隔的閾值  
  14.     if (now - last < delay) {  
  15.     // 如果時間間隔小于我們設定的時間間隔閾值,則為本次觸發操作設立一個新的定時器  
  16.        clearTimeout(timer)  
  17.        timer = setTimeout(function () {  
  18.           last = now  
  19.           fn.apply(context, args)  
  20.         }, delay)  
  21.     } else {  
  22.         // 如果時間間隔超出了我們設定的時間間隔閾值,那就不等了,無論如何要反饋給用戶一次響應  
  23.         last = now  
  24.         fn.apply(context, args)  
  25.     }  
  26.   }  
  27.  
  28. // 用新的throttle包裝scroll的回調  
  29. const better_scroll = throttle(() => console.log('觸發了滾動事件'), 1000)  
  30. document.addEventListener('scroll', better_scroll) 
責任編輯:龐桂玉 來源: segmentfault
相關推薦

2018-02-01 09:26:12

面試算法題程序員

2022-01-12 09:08:37

索引JavaReference對象

2022-08-12 09:35:36

JavaScript面試

2019-02-21 10:49:51

Redis持久化恢復

2019-12-16 15:37:57

JavaScript人生第一份工作瀏覽器

2019-07-16 10:10:46

JavaScript數據類型

2021-03-04 22:15:36

JavaScript編程開發

2022-10-09 07:33:38

JavaSPI程序

2020-05-14 08:13:56

JDK命令Java

2010-04-06 13:07:45

Oracle數據庫

2019-05-15 16:45:13

SpringBoot面試題Java

2024-09-24 10:28:22

2022-09-25 22:56:52

JavaScrip編程技巧

2022-09-30 09:26:35

JavaScript技巧

2024-09-05 13:02:41

2011-04-11 13:28:31

Oracle安裝

2010-06-04 19:31:25

遠程MySQL權限

2011-04-11 13:25:59

Sybase安裝

2023-11-28 21:50:39

finalstaticvolatile

2010-04-21 08:50:08

點贊
收藏

51CTO技術棧公眾號

久久都是精品| 4438全国亚洲精品观看视频| 久久久久久久久一| 国产精品视频白浆免费视频| 久草网站在线观看| 天海翼亚洲一区二区三区| 在线视频中文字幕一区二区| 香蕉精品视频在线| 人妻一区二区三区| 日本v片在线高清不卡在线观看| 日韩视频精品在线| 水蜜桃av无码| 精品美女一区| 午夜成人免费电影| 亚欧精品在线| 色欲av伊人久久大香线蕉影院| 亚洲专区一区| 欧美成人精品一区二区| 中文字幕xxx| 年轻的保姆91精品| 色香色香欲天天天影视综合网| 日韩视频在线观看视频| 欧美老女人性开放| 国产成人在线色| 国产精品国产福利国产秒拍| 国产一级淫片免费| 国产精品黑丝在线播放| 亚洲精品一区中文字幕乱码| 国产成人av片| 91麻豆精品| 欧美中文字幕亚洲一区二区va在线| 日韩极品视频在线观看| 国产美女视频一区二区三区| av在线一区二区三区| 51蜜桃传媒精品一区二区| 无码一区二区三区| 国产日韩高清一区二区三区在线| 久久精品亚洲精品| 欧美人妻一区二区三区| 另类春色校园亚洲| 欧美xxxx在线观看| 欧美性受xxxx黒人xyx性爽| 精品欧美一区二区三区在线观看 | 久久99精品久久久久久动态图| 96精品视频在线| 国产一级一片免费播放| 欧美激情视频一区二区三区在线播放 | 欧美伦理片在线看| 制服丝袜专区在线| 五月激情综合色| 日本中文字幕亚洲| h片在线观看视频免费| 亚洲一区二区综合| 亚洲 欧美 综合 另类 中字| 四虎影视成人| 一区二区三区免费网站| 麻豆映画在线观看| 91精品国产91久久久久久青草| 一色屋精品亚洲香蕉网站| 天天综合色天天综合色hd| 91电影在线播放| 国产精品日韩成人| 中文字幕成人一区| 成人看av片| 亚洲最大的成人av| 僵尸世界大战2 在线播放| 超碰99在线| 色综合咪咪久久| 国产日韩成人内射视频| 久久er热在这里只有精品66| 欧美精品在欧美一区二区少妇| 亚洲美女性囗交| 136福利精品导航| 日韩精品久久久久| 非洲一级黄色片| 色乱码一区二区三区网站| www.xxxx欧美| 欧美黑人性猛交xxx| 精品9999| 国产精品999| 国产毛片久久久久| 成人久久久精品乱码一区二区三区| 国产午夜精品在线| 国产在线视频你懂得| 欧美高清在线精品一区| 四虎永久免费网站| 伊人久久国产| 欧美喷水一区二区| www男人天堂| 国产精品中文字幕亚洲欧美| 久久精品视频中文字幕| 亚欧洲精品在线视频| 日韩经典一区二区| 999国产在线| 欧美色图另类| 亚洲男同性恋视频| 97在线免费公开视频| 日韩电影精品| 日韩电影大片中文字幕| 天堂av网手机版| 亚洲精品九九| 成人欧美一区二区三区黑人孕妇 | 成人小视频在线观看免费| 免费看男女www网站入口在线 | 深夜福利视频在线免费观看| 国产欧美日韩久久| 国产玉足脚交久久欧美| 国产成人午夜性a一级毛片| 精品久久国产字幕高潮| 99久久99久久精品免费看小说.| 国产精品v亚洲精品v日韩精品 | 欧美激情性做爰免费视频| 六月丁香激情综合| 国产成人激情av| 日韩视频在线播放| 久久久男人天堂| 欧美一区二区三区四区久久| 国产免费看av| 精品999网站| 91人成网站www| 高清av在线| 午夜视频一区二区| wwwxxxx在线观看| 成人久久综合| 日本精品免费观看| 欧美熟妇乱码在线一区| 亚洲天堂a在线| 色乱码一区二区三区在线| 亚洲小说图片| 8x海外华人永久免费日韩内陆视频| 国产在成人精品线拍偷自揄拍| 国产亚洲欧美日韩在线一区| 丰满爆乳一区二区三区| 在线视频亚洲欧美中文| 久色乳综合思思在线视频| 成人一级免费视频| 久久综合给合久久狠狠狠97色69| 国产精品又粗又长| 999国产精品一区| 欧美日韩国产二区| 99在线精品视频免费观看软件| 国产精品二三区| 色片在线免费观看| 首页国产精品| 成人美女av在线直播| 黄色av网站在线播放| 91麻豆精品国产自产在线| 国产黄色录像片| 久久99久久99| 热这里只有精品| 久久精品一级| 欧美日韩成人网| 亚洲国产综合网| 亚洲午夜久久久久中文字幕久| 国产综合内射日韩久| 亚洲另类黄色| 欧美精品一区二区三区在线四季| 性欧美又大又长又硬| 精品偷拍各种wc美女嘘嘘| 天天干在线播放| 国产欧美一区视频| 天天操,天天操| 五月精品视频| 97超碰人人看人人 | 肉丝一区二区| 色哟哟一区二区在线观看 | 亚洲人成精品久久久久| 午夜一级免费视频| 欧美91大片| 狠狠久久综合婷婷不卡| 欧美极品免费| 日韩在线免费视频| 亚洲黄色a级片| 日韩欧美高清视频| 欧美一区二区三区观看| 国产一区二区在线影院| 成人黄色大片网站| 国产一区二区三区四区五区| 国产精品亚洲一区二区三区| 天堂av最新在线| 亚洲欧美日本精品| 国产精品久久久久久69| 一区二区三区精密机械公司| 风间由美一二三区av片| 蜜桃传媒麻豆第一区在线观看| 中国老女人av| 亚洲专区视频| 91在线网站视频| 亚洲妇女成熟| 日韩在线视频一区| 人妻va精品va欧美va| 在线视频综合导航| 久久无码精品丰满人妻| 久久精品视频免费| 日本黄色一级网站| 丝袜亚洲精品中文字幕一区| 国产日产欧美一区二区| 天堂在线精品| 69174成人网| 欧美成人资源| 欧美精品videos另类日本| 黄色小视频在线免费观看| 日韩欧美在线影院| 国产男人搡女人免费视频| 一区二区三区欧美| www亚洲色图| av电影天堂一区二区在线| 在线看的黄色网址| 国产亚洲激情| 国产片侵犯亲女视频播放| 日韩精品一卡| 日本精品一区二区三区高清 久久| 伊人精品久久| 91九色精品视频| 免费高清视频在线一区| 97视频在线观看网址| av香蕉成人| 日韩综合中文字幕| 韩日在线视频| 日韩精品在线观看网站| 成人av一区二区三区在线观看| 欧美日韩一区二区在线视频| 青草视频在线观看免费| 亚洲精品免费在线播放| 91视频最新网址| 国产欧美一区二区精品性| 人妻在线日韩免费视频| 成人妖精视频yjsp地址| 日韩精品aaa| 久久69国产一区二区蜜臀| 三级在线视频观看| 首页欧美精品中文字幕| 久久无码高潮喷水| 亚洲精品资源| 欧美精品久久久久久久久久久| 欧美三级免费| 日本中文字幕一级片| 91av精品| 穿情趣内衣被c到高潮视频| 国产精品二区不卡| www.午夜色| 忘忧草精品久久久久久久高清| 亚洲图片小说在线| 狠狠色丁香婷婷综合影院| 欧美一区二区综合| 九色精品91| 日本一区视频在线观看免费| 欧美日韩播放| 日韩国产欧美一区| 欧美码中文字幕在线| 日韩在线三区| 青青一区二区三区| 一区二区不卡在线观看| 国产精品久久久久久| 国产精品美女在线播放| 亚洲国产精品日韩专区av有中文| 黄频视频在线观看| 最新国产精品久久久| 韩国无码av片在线观看网站| 国产精品porn| 少妇高潮喷水在线观看| 国产亚洲欧洲| 十八禁视频网站在线观看| 日韩国产精品久久| 国产探花在线看| 国产精品91xxx| 亚洲男人在线天堂| 久久久久久久久蜜桃| www..com.cn蕾丝视频在线观看免费版| 中文幕一区二区三区久久蜜桃| 欧美aaa级片| 一级精品视频在线观看宜春院| 国产系列精品av| 日韩欧美精品网站| 影音先锋国产资源| 日韩欧美中文字幕精品| 青青青手机在线视频观看| 在线看日韩av| 女人黄色免费在线观看| 青青久久av北条麻妃黑人| 精品美女一区| 国产丝袜不卡| 99久久久久| 狠狠干 狠狠操| 久久99国产精品久久99| 中文字幕在线观看91| 国产午夜精品一区二区三区四区| 人人干在线观看| 午夜精品福利一区二区三区av| 中文字幕永久在线| 日韩欧美国产wwwww| 久久久久久久影视| 九九九热精品免费视频观看网站| 美女高潮视频在线看| 国产在线日韩在线| 欧美一性一交| 日韩一二区视频| 视频一区视频二区中文| 不许穿内裤随时挨c调教h苏绵| 国产午夜精品一区二区三区视频 | 国产熟妇搡bbbb搡bbbb| 欧美国产精品久久| 日韩av片在线播放| 欧美日韩aaaaaa| 亚洲色图21p| 大量国产精品视频| 美女色狠狠久久| 精品一区二区视频| 中文字幕人成人乱码| 国产精彩免费视频| av电影在线观看不卡| 中文字幕亚洲欧美日韩| 欧美在线免费播放| 天天综合网在线观看| 久久天天躁日日躁| abab456成人免费网址| 国产一区二区在线观看免费播放| 99国产精品一区二区| 蜜臀久久99精品久久久酒店新书| 成人黄色小视频在线观看| 中文字幕乱码av| 色婷婷久久久综合中文字幕| 国产 欧美 精品| 久久伊人免费视频| 亚洲欧洲二区| 欧美视频小说| 国产精品永久| 精品国产一区在线| 亚洲国产精品久久久久秋霞影院| 国产xxxx在线观看| 久久中文字幕在线| 91精品一久久香蕉国产线看观看| 亚洲欧美日产图| 免费在线观看不卡| 性欧美一区二区| 精品久久久久国产| 五月婷在线视频| 欧美国产日韩免费| 欧美午夜在线播放| 99热一区二区三区| 韩国一区二区三区| 69夜色精品国产69乱| 欧美日韩在线播放| 日本高清视频在线观看| 国产在线观看一区二区三区| 第一会所sis001亚洲| 最新天堂中文在线| 中文字幕日韩av资源站| 国产精品一区二区av白丝下载| 少妇高潮 亚洲精品| 日韩城人网站| 无码人妻aⅴ一区二区三区日本| 激情五月播播久久久精品| 日本在线一级片| 日韩美一区二区三区| 欧美人与禽性xxxxx杂性| 国产乱码精品一区二区三区中文| 激情综合激情| 一本色道综合久久欧美日韩精品 | 丰满人妻一区二区三区四区53| 欧美激情亚洲激情| 老司机aⅴ在线精品导航| 男女高潮又爽又黄又无遮挡| 久久久精品黄色| 在线播放国产一区| 欧美www在线| 国产精品白浆| 欧美激情精品久久久久久小说| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲综合日韩在线| 国产精品v一区二区三区| 国产吞精囗交久久久| 欧美在线短视频| www在线观看播放免费视频日本| 国产精选一区二区| 日韩电影一区二区三区| 欧美爱爱免费视频| 亚洲激情在线观看视频免费| 高清电影一区| 在线观看免费黄色片| 91在线精品一区二区| 亚洲天堂视频网| 久久久久久亚洲精品| 国产99久久| 国产欧美激情视频| 午夜精品福利久久久| av网站无病毒在线| 成人h视频在线观看| 日韩成人一区二区三区在线观看| 国产一二三区精品| 亚洲精品小视频在线观看| 99综合99| 北条麻妃视频在线| 一区二区三区四区国产精品| 视频国产在线观看| 3d蒂法精品啪啪一区二区免费| 久久五月激情| 国产一级片播放| 最近2019中文字幕在线高清| 九色丨蝌蚪丨成人|