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

靈活使用console讓 js調(diào)試更簡單

開發(fā) 前端
Web開發(fā)最常用的高度就是 console.log ,雖然 console.log 占有一席之地,但很多人并沒有意識到 console 本身除了基本 log 方法之外還有很多其他方法。 適當使用這些方法可以使調(diào)試更容易,更快速,更直觀。

[[261500]]

Web開發(fā)最常用的高度就是 console.log ,雖然 console.log 占有一席之地,但很多人并沒有意識到 console 本身除了基本 log 方法之外還有很多其他方法。 適當使用這些方法可以使調(diào)試更容易,更快速,更直觀。

console.log()

在console.log 中有很多人們意想不到的功能。雖然大多數(shù)人使用 console.log(object) 來查看對象,但是你也可以使用 console.log(object, otherObject, string),它會把它們都整齊地記錄下來,偶爾也會很方便。

不僅如此,還有另一種格式化的: console.log(msg, values),這很像 C 或 PHP 中的sprintf。

  1. console.log('I like %s but I do not like %s.', 'Skittles', 'pus'); 

會像你預(yù)期的那樣輸出: 

  1. > I like Skittles but I do not like pus. 

常見的占位符 %o (這是字母o,不是0),它接受對象,%s 接受字符串,%d 表示小數(shù)或整數(shù)。

另一個有趣的是 %c,這可能與你所想不太相同,它實際上是CSS值的占位符。使用%c占位符時,對應(yīng)的后面的參數(shù)必須是CSS語句,用來對輸出內(nèi)容進行CSS渲染。常見的輸出方式有兩種:文字樣式、圖片輸出。

  1. console.log('I am a %cbutton', 'color: white; background-color: orange; padding: 2px 5px; border-radius: 2px'); 

它并不優(yōu)雅,也不是特別有用。當然,這并不是一個真正的按鈕。

它有用嗎? 恩恩恩。

console.dir()

在大多數(shù)情況下,console.dir() 的函數(shù)非常類似于 log(),盡管它看起來略有不同。

下拉小箭頭將顯示與上面相同的對象詳細信息,這也可以從console.log 版本中看到。當你查看元素的結(jié)構(gòu)時候,你會發(fā)現(xiàn)它們之間的差異更大,也更有趣。 

  1. let element = document.getElementById('2x-container'); 

使用 console.log 查看:

打開了一些元素,這清楚地顯示了 DOM,我們可以在其中導(dǎo)航。但是console.dir(element)給出了更加方便查看 DOM 結(jié)構(gòu)的輸出:

這是一種更客觀地看待元素的方式。有時候,這可能是您真正想要的,更像是檢查元素。

console.warn()

可能是最明顯的直接替換 log(),你可以以完全相同的方式使用 console.warn()。 唯一真正的區(qū)別是輸出字的顏色是黃色的。 具體來說,輸出處于警告級別而不是信息級別,因此瀏覽器將稍微區(qū)別對待它。 這具有使其在雜亂輸出中更明顯的效果。

不過,還有一個更大的優(yōu)勢,因為輸出是警告而不是信息,所以你可以過濾掉所有console.log并僅保留console.warn。 這對于偶爾會在瀏覽器中輸出大量無用廢話的應(yīng)用程序尤其有用。 清除一些無用的信息可以讓你更輕松地看到你想要的輸出。

console.table()

令人驚訝的是,這并不是更為人所知,但是 console.table() 函數(shù)旨在以一種比僅僅轉(zhuǎn)出原始對象數(shù)組更整潔的方式顯示表格數(shù)據(jù)。

例如,這里有一個數(shù)據(jù)列表。 

  1. const data = [{  
  2.   id: "7cb1-e041b126-f3b8",  
  3.   seller: "WAL0412",  
  4.   buyer: "WAL3023",  
  5.   price: 203450,  
  6.   time: 1539688433  
  7. },  
  8.  
  9.   id: "1d4c-31f8f14b-1571",  
  10.   seller: "WAL0452",  
  11.   buyer: "WAL3023",  
  12.   price: 348299,  
  13.   time: 1539688433  
  14. },  
  15.  
  16.   id: "b12c-b3adf58f-809f",  
  17.   seller: "WAL0012",  
  18.   buyer: "WAL2025",  
  19.   price: 59240,  
  20.   time: 1539688433  
  21. }]; 

如果我們使用 console.log 來輸出上面的內(nèi)容,我們會得到一些非常無用的輸出: 

  1. ▶ (3) [{…}, {…}, {…}] 

點擊這個小箭頭可以展開看到對象的內(nèi)容,但是,它并不是我們想要的“一目了然”。

但是 console.table(data) 的輸出要有用得多。

第二個可選參數(shù)是所需列的列表。顯然,所有列都是默認值,但我們也可以這樣做: 

  1. > console.table(data, ["id", "price"]); 

這里要注意的是這是亂序的 - 最右邊的列標題上的箭頭顯示了原因。 我點擊該列進行排序。 找到列的最大或最小,或者只是對數(shù)據(jù)進行不同的查看非常方便。 順便說一句,該功能與僅顯示一些列無關(guān),它總是可用的。

console.table() 只能處理最多1000行,因此它可能不適合所有數(shù)據(jù)集。

console.assert()

assert() 與 log() 是相同的函數(shù),assert()是對輸入的表達式進行斷言,只有表達式為false時,才輸出相應(yīng)的信息到控制臺,示例如下: 

  1. var arr = [1, 2, 3];  
  2. console.assert(arr.length === 4); 

有時我們需要更復(fù)雜的條件句。例如,我們已經(jīng)看到了用戶 WAL0412 的數(shù)據(jù)問題,并希望僅顯示來自這些數(shù)據(jù)的事務(wù),這是直觀的解決方案。 

  1. console.assert(tx.buyer === 'WAL0412', tx); 

這看起來不錯,但行不通。記住,條件必須為false,斷言才會執(zhí)行,更改如下: 

  1. console.assert(tx.buyer !== 'WAL0412', tx); 

與其中一些類似,console.assert() 并不總是特別有用。但在特定的情況下,它可能是一個優(yōu)雅的解決方案。

console.count()

另一個具有特殊用途的計數(shù)器,count只是作為一個計數(shù)器,或者作為一個命名計數(shù)器,可以統(tǒng)計代碼被執(zhí)行的次數(shù)。 

  1. for(let i = 0; i < 10000; i++) {  
  2.   if(i % 2) {  
  3.     console.count('odds');  
  4.   }  
  5.   if(!(i % 5)) {  
  6.     console.count('multiplesOfFive');  
  7.   }  
  8.   if(isPrime(i)) {  
  9.     console.count('prime');  
  10.   }  

這不是有用的代碼,而且有點抽象。這邊也不打算演示 isPrime 函數(shù),假設(shè)它是成立的。

執(zhí)行后我們會得到一個列表: 

  1. odds: 1  
  2. odds: 2  
  3. prime: 1  
  4. odds: 3  
  5. multiplesOfFive: 1  
  6. prime: 2  
  7. odds: 4  
  8. prime: 3  
  9. odds: 5  
  10. multiplesOfFive: 2  
  11. ... 

還有一個相關(guān)的 console.countReset(),可以使用它重置計數(shù)器。

console.trace()

trace() 在簡單的數(shù)據(jù)中很難演示。當您試圖在類或庫中找出是哪個實際調(diào)用者導(dǎo)致了這個問題時,它的優(yōu)勢就顯現(xiàn)出來了。

例如,可能有 12 個不同的組件調(diào)用一個服務(wù),但是其中一個組件沒有正確地設(shè)置依賴項。 

  1. export default class CupcakeService {   
  2.   constructor(dataLib) {  
  3.     this.dataLib = dataLib;  
  4.     if(typeof dataLib !== 'object') {  
  5.       console.log(dataLib);  
  6.       console.trace();  
  7.     }  
  8.   }  
  9.   ...  

這里使用 console.log() 僅告訴我們傳遞數(shù)據(jù)dataLib是什么 ,而沒有具體的傳遞的路徑。不過,console.trace() 會非常清楚地告訴我們問題出在 Dashboard.js,我們可以看到是 new CupcakeService(false) 導(dǎo)致錯誤。

console.time()

console.time() 是一個用于跟蹤操作時間的專用函數(shù),它是跟蹤 JavaScript執(zhí)行時間的好方法。 

  1. function slowFunction(number) {  
  2.   var functionTimerStart = new Date().getTime();  
  3.   // something slow or complex with the numbers.   
  4.   // Factorials, or whatever.  
  5.   var functionTime = new Date().getTime() - functionTimerStart;  
  6.   console.log(`Function time: ${ functionTime }`);  
  7.  
  8. var start = new Date().getTime();  
  9. for (i = 0; i < 100000; ++i) {  
  10.   slowFunction(i);  
  11.  
  12. var time = new Date().getTime() - start;  
  13. console.log(`Execution time: ${ time }`); 

這是一種老派的做法,我們使用 console.time() 來簡化以上代碼。 

  1. const slowFunction = number =>  {  
  2.   console.time('slowFunction');  
  3.   // something slow or complex with the numbers.   
  4.   // Factorials, or whatever.  
  5.   console.timeEnd('slowFunction');  
  6.  
  7. console.time();  
  8. for (i = 0; i < 100000; ++i) {  
  9.   slowFunction(i);  
  10.  
  11. console.timeEnd(); 

我們現(xiàn)在不再需要做任何計算或設(shè)置臨時變量。

console.group() 

  1. // this is the global scope  
  2. let number = 1 
  3. console.group('OutsideLoop');  
  4. console.log(number);  
  5. console.group('Loop');  
  6. for (let i = 0; i < 5; i++) {  
  7.   number = i + number;  
  8.   console.log(number);  
  9.  
  10. console.groupEnd();  
  11. console.log(number);  
  12. console.groupEnd();  
  13. console.log('All done now'); 

輸出如下:

并不是很有用,但是您可以看到其中一些是如何組合的。 

  1. class MyClass {  
  2.   constructor(dataAccess) {  
  3.     console.group('Constructor');  
  4.     console.log('Constructor executed');  
  5.     console.assert(typeof dataAccess === 'object',   
  6.       'Potentially incorrect dataAccess object');  
  7.     this.initializeEvents();  
  8.     console.groupEnd();  
  9.   }  
  10.   initializeEvents() {  
  11.     console.group('events');  
  12.     console.log('Initialising events');  
  13.     console.groupEnd();  
  14.   }  
  15.  
  16. let myClass = new MyClass(false); 

這是很多工作和很多調(diào)試信息的代碼,可能不是那么有用。 但它仍然是一個有趣的想法,這樣寫使你的日志記錄更加清晰。

選擇DOM元素

如果熟悉jQuery,就會知道 $(‘.class’) 和 $(‘#id’) 選擇器有多么重要。它們根據(jù)與之關(guān)聯(lián)的類或 ID 選擇 DOM 元素。

但是當你沒有引用 jQuery時,你仍然可以在谷歌開發(fā)控制臺中進行同樣的操作。

$(‘tagName’) $(‘.class’) $(‘#id’) and $(‘.class #id’) 等效于document.querySelector(‘ ‘),這將返回 DOM 中與選擇器匹配的第一個元素。

可以使用 \$\$(tagName) 或 \$\$(.class), 注意雙元符號,根據(jù)特定的選擇器選擇DOM的所有元素。這也將它們放入數(shù)組中,你也可以通過指定數(shù)組中該元素的位置來從中選擇特定的元素。

例如,&dollar;&dollar;(‘.className’) 獲取具有類 className 的所有元素,而\$\$(‘.className’)[0]和 \$\$(‘.className’)[1]獲取到分別是第一個和第二個元素。

將瀏覽器轉(zhuǎn)換為編輯器

你有多少次想知道你是否可以在瀏覽器中編輯一些文本? 答案是肯定的,你可以將瀏覽器轉(zhuǎn)換為文本編輯器。 你可以在 DOM 中的任何位置添加文本和從中刪除文本。

你不再需要檢查元素并編輯HTML。相反,進入開發(fā)人員控制臺并輸入以下內(nèi)容: 

  1. document.body.contentEditable=true  

這將使內(nèi)容可編輯。現(xiàn)在,你幾乎可以編輯DOM中的任何內(nèi)容。

查找與DOM中的元素關(guān)聯(lián)的事件

調(diào)試時,需要查找 DOM 中某個元素的事件偵聽器感時,谷歌控制臺了 getEventListeners使找到這些事件更加容易且直觀。

getEventListeners($(‘selector’)) 返回一個對象數(shù)組,其中包含綁定到該元素的所有事件。你可以展開對象來查看事件:

要找到特定事件的偵聽器,可以這樣做: 

  1. getEventListeners($(‘selector’)).eventName[0].listener  

這將顯示與特定事件關(guān)聯(lián)的偵聽器。這里 eventName[0] 是一個數(shù)組,它列出了特定事件的所有事件。例如: 

  1. getEventListeners($(‘firstName’)).click[0].listener  

將顯示與 ID 為 ‘firstName’ 的元素的單擊事件關(guān)聯(lián)的偵聽器。

監(jiān)控事件

如果希望在執(zhí)行綁定到 DOM 中特定元素的事件時監(jiān)視它們,也可以在控制臺中這樣做。你可以使用不同的命令來監(jiān)控其中的一些或所有事件:

如果希望在執(zhí)行綁定到DOM中特定元素的事件時監(jiān)視它們,也可以在控制臺中這樣做。你可以使用不同的命令來監(jiān)控其中的一些或所有事件:

  •  monitorEvents($(‘selector’)) 將監(jiān)視與選擇器的元素關(guān)聯(lián)的所有事件,然后在它們被觸發(fā)時將它們打印到控制臺。例如,monitore($(#firstName)) 將打印 ID 為 firstName元素的所有事件。
  •  monitorEvents($(‘selector’),’eventName’) 將打印與元素綁定的特定事件。 你可以將事件名稱作為參數(shù)傳遞給函數(shù)。 這將僅記錄綁定到特定元素的特定事件。 例如,monitorEvents($(‘#firstName’),’click’) 將打印綁定到ID為'firstName'的元素的所有 click 事件。
  •  monitore($(selector),[eventName1, eventName3', .])將根據(jù)您自己的需求記錄多個事件。與其傳遞單個事件名作為參數(shù),不如傳遞包含所有事件的字符串數(shù)組。例如monitore($(#firstName),[click, focus])將記錄與ID firstName元素綁定的 click事件和focus事件。
  •  unmonitorevent ($(selector)):這將停止監(jiān)視和打印控制臺中的事件。

檢查 DOM 中的一個元素

你可以直接從控制臺檢查一個元素:

  •  inspect($(‘selector’)) 將檢查與選擇器匹配的元素,并轉(zhuǎn)到 Chrome Developer Tools中的 Elements 選項卡。 例如, inspect($(‘#firstName’)) 將檢查 ID為'firstName' 的元素,spect($(‘a’)[3]) 將檢查 DOM 中的第 4 個 a 元素。
  •  $0, $1, $2 等可以幫助你獲取最近檢查過的元素。 例如,$0 表示最后檢查的 DOM 元素,而$1 倒數(shù)第二個檢查的 DOM 元素。

檢索最后一個結(jié)果的值

你可以將控制臺用作計算器。當你這樣做的時候,你可能需要用第二個來跟蹤一個計算。以下是如何從內(nèi)存中檢索先前計算的結(jié)果: 

  1. $_  

過程如下: 

  1. 2+3+4  
  2. 9 //- The Answer of the SUM is 9  
  3. $_  
  4. 9 // Gives the last Result  
  5. $_ * $_  
  6. 81  // As the last Result was 9  
  7. Math.sqrt($_)  
  8. 9 // As the last Result was 81  
  9. $_  
  10. 9 // As the Last Result is 9 

清除控制臺和內(nèi)存

如果你想清除控制臺及其內(nèi)存,輸入如下: 

  1. clear() 

代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行l(wèi)og 調(diào)試,這邊順便給大家推薦一個好用的BUG監(jiān)控工具 Fundebug。

 

責任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2018-03-15 09:20:00

前端JSconsole

2020-05-07 10:18:06

JavaScript前端技術(shù)

2024-02-27 19:22:00

cookieStorCookie事件

2023-12-01 16:00:48

Python結(jié)構(gòu)化模式

2012-06-20 13:36:42

Surface平板

2011-05-07 16:13:14

數(shù)碼復(fù)合機

2020-07-15 08:37:11

JavaScript開發(fā)技術(shù)

2011-03-29 13:46:56

備份Windows Ser安全

2022-04-14 07:51:39

TektonTaskRun

2019-07-10 10:20:36

前端用戶體驗javascript

2019-09-17 14:31:52

JSJavaScript前端

2021-07-24 13:16:31

Android 代碼操作系統(tǒng)

2020-06-16 13:22:22

AI創(chuàng)新深度學(xué)習

2015-05-20 12:50:42

C#開發(fā)抽象增刪改

2010-03-23 09:54:35

好壓壓縮

2022-06-05 23:28:50

TypeScripinfer類型

2012-09-25 09:28:36

程序員代碼代碼整潔

2024-04-26 07:54:07

ZustandReact狀態(tài)管理庫

2009-06-18 15:51:52

SSL VPN負載均衡Array

2023-11-27 08:21:49

Camera2API,
點贊
收藏

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

亚洲人成网站精品片在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲成人三级在线| 日日摸日日碰夜夜爽无码| 精品乱码一区二区三四区视频 | 欧洲vs亚洲vs国产| 久久久久久无码精品大片| 日日狠狠久久| 亚洲mv大片欧洲mv大片精品| 日韩电影在线播放| 国产后入清纯学生妹| 午夜一区不卡| 久久高清视频免费| 国产男女猛烈无遮挡a片漫画| 精品美女一区| 精品国产精品三级精品av网址| 亚洲巨乳在线观看| 亚洲欧美日韩动漫| 国产一区二区三区四| 青草成人免费视频| 欧美日韩在线观看免费| 精品久久电影| 亚洲国产精久久久久久久| 欧美男女交配视频| 乡村艳史在线观看| 一区二区三区成人| 性刺激综合网| 日本私人网站在线观看| 国产aⅴ精品一区二区三区色成熟| 国产精品高潮呻吟久久av野狼| 日本在线免费观看| 你懂的网址国产 欧美| 亚洲欧美日韩直播| 捆绑凌虐一区二区三区| 日韩视频一区二区三区四区| 欧美性猛交xxxx乱大交退制版 | 久久精品日产第一区二区三区| 999国产精品视频免费| 日韩和的一区二区| 国产99在线|中文| 久久精品国产亚洲AV无码男同| 99久久精品费精品国产| 亚洲四色影视在线观看| 亚洲av片不卡无码久久| 福利片一区二区| 日韩视频永久免费| 欧美高清精品一区二区| 色8久久久久| 欧美午夜理伦三级在线观看| 能在线观看的av网站| 欧美人体一区二区三区| 色综合天天综合网天天看片| 看av免费毛片手机播放| 蜜桃视频在线观看播放| 午夜精品福利久久久| 日本男女交配视频| 岛国毛片av在线| 国产国语亲子伦亲子| 久久看人人摘| 在线午夜精品自拍| 女人裸体性做爰全过| 欧美日中文字幕| 中文字幕精品一区二区精品| 日韩毛片无码永久免费看| 深爱激情综合| 一道本无吗dⅴd在线播放一区 | 国产精品伦理一区二区| 亚洲国产日韩美| 欧美午夜电影一区二区三区| 日韩毛片视频在线看| 91精品国产吴梦梦| 黑人极品ⅴideos精品欧美棵| 亚洲韩国精品一区| 波多野结衣家庭教师在线| 中国字幕a在线看韩国电影| 色哟哟国产精品免费观看| 亚洲天堂网一区| 精品国产不卡一区二区| 亚洲第一福利在线观看| 免费观看av网站| blacked蜜桃精品一区| 少妇久久久久久| 欧美成人手机视频| 日本aa在线| 亚洲欧洲一二区| 色婷婷国产精品综合在线观看| 久草在在线视频| 日日夜夜精品| 亚洲精品国产拍免费91在线| 中文字幕av久久爽一区| 亚洲色图网站| 51精品国产黑色丝袜高跟鞋 | 日本在线观看大片免费视频| 性做久久久久久久免费看| 久章草在线视频| 欧美一级网址| 亚洲精品国精品久久99热| 五月天综合视频| 欧美一区二区| 日韩女优人人人人射在线视频| 91九色蝌蚪91por成人| 成人av网址在线| 亚洲精品一区二区三区蜜桃久| 亚洲综合影视| 91传媒视频在线播放| 中国老熟女重囗味hdxx| 国产精品片aa在线观看| 欧美二区在线播放| 日本视频www色| 成人一道本在线| 一区二区三区的久久的视频| 超碰资源在线| 欧美一级一区二区| xxxx日本黄色| 亚洲电影成人| 亚洲自拍偷拍一区| 成人精品福利| 欧美日韩视频在线| 国偷自产av一区二区三区麻豆| 精品大片一区二区| 97视频在线观看亚洲| 国产又粗又长视频| 国产婷婷一区二区| 少妇高潮喷水在线观看| 日韩精品久久久久久久软件91| 在线播放精品一区二区三区| 免费中文字幕视频| 久久se精品一区精品二区| 久久久影院一区二区三区| 在线视频中文字幕第一页| 欧美视频在线一区二区三区 | 亚洲视频图片小说| www.99在线| 自拍欧美一区| 69精品小视频| 欧美特级特黄aaaaaa在线看| 亚洲精品成人精品456| 亚洲精品久久久久久宅男| 国产欧美日韩精品高清二区综合区| 国语自产在线不卡| 亚洲国产精彩视频| 曰韩精品一区二区| 图片区乱熟图片区亚洲| 91影院成人| 国产乱人伦真实精品视频| 成年网站在线| 欧美系列一区二区| 精品无码在线观看| 日本女优在线视频一区二区| 日本黄网免费一区二区精品| 亚洲午夜天堂| 日韩麻豆第一页| 国产性猛交╳xxx乱大交| 99久久久精品| 日韩少妇内射免费播放18禁裸乳| 极品一区美女高清| 4438全国成人免费| 欧美日韩在线中文字幕| 日韩欧美中文第一页| 欧美做受xxxxxⅹ性视频| 国产精品综合| 少妇精品久久久久久久久久| 91天天综合| 北条麻妃一区二区三区中文字幕| 亚洲最大成人av| 中文字幕制服丝袜成人av| 五月天丁香花婷婷| 亚洲色图国产| 国产免费一区二区| 午夜不卡影院| 伊人久久久久久久久久久久久| 久久久久精彩视频| 综合欧美亚洲日本| aaaaa黄色片| 国产美女诱惑一区二区| 青青成人在线| 99视频这里有精品| 国内伊人久久久久久网站视频| 亚洲欧洲成人在线| 欧美视频在线不卡| 欧美成人一二三区| 99久久国产免费看| 黄色aaa级片| 牛牛国产精品| 欧美另类一区| 美女精品久久| 欧美专区日韩视频| 黄色一级片在线观看| 亚洲成人精品av| 中文字幕在线日本| 亚洲精品中文在线观看| 国产性生活毛片| 男人操女人的视频在线观看欧美| 穿情趣内衣被c到高潮视频| 精品精品国产毛片在线看| 国产精品久久久久不卡| 羞羞视频在线观看免费| 亚洲视频在线观看视频| 国产成人精品一区二三区四区五区| 五月激情六月综合| 开心激情五月网| www.亚洲精品| 天堂中文av在线| 久久成人免费| 天堂8在线天堂资源bt| 黑人操亚洲人| 国产欧美日韩伦理| 国产精品一区二区精品视频观看| 国产91成人在在线播放| av毛片在线看| 中文字幕不卡av| 香蕉国产在线视频| 欧美一区二区日韩一区二区| www.国产一区二区| 亚洲制服丝袜在线| 午夜成人亚洲理伦片在线观看| a亚洲天堂av| 国产精品91av| 国内精品写真在线观看| 国产又大又黄又粗的视频| 精品动漫3d一区二区三区免费| 在线播放 亚洲| 国产精品探花在线观看| 久久精品国产精品国产精品污| 激情综合婷婷| 国产一区二区视频在线观看| 成人小电影网站| 久久久视频在线| 主播国产精品| 日韩在线视频网站| 狠狠v欧美ⅴ日韩v亚洲v大胸| 亚洲国产黄色片| 日韩在线观看视频网站| 日韩一卡二卡三卡四卡| 真实的国产乱xxxx在线91| 一本久久a久久精品亚洲| 日本三级一区二区| 亚洲成av人片在www色猫咪| 久草视频免费播放| 一区二区三区免费网站| 久久久精品视频免费观看| 中文字幕日韩av资源站| 国产人与禽zoz0性伦| 亚洲国产成人私人影院tom | 国产在视频线精品视频www666| 国产综合第一页| 国产精品久久久网站| 国产98在线|日韩| 99国产精品久久一区二区三区| 亚洲影影院av| 综合激情久久| 国产伦精品一区二区三区视频免费| 日韩三级不卡| 国产女主播一区二区| 欧美日韩一区二区三区四区不卡 | 国产mv免费观看入口亚洲| 中文字幕成在线观看| 啪一啪鲁一鲁2019在线视频| 亚洲成人人体| 国产精品影院在线观看| 成人亚洲精品| 粉嫩av免费一区二区三区| 国产精品15p| 久久综合狠狠综合久久综青草| 九九综合九九| 亚洲精品国产精品久久| 无需播放器亚洲| 成人毛片100部免费看| 亚洲无吗在线| 欧美性大战久久久久xxx| 老牛国产精品一区的观看方式| 婷婷六月天在线| 国产精品一级黄| 国产黄色三级网站| 国产亚洲成aⅴ人片在线观看| 波多野结衣家庭教师在线观看| 亚洲精品视频一区二区| 日韩免费视频一区二区视频在线观看| 在线观看中文字幕不卡| 91丨porny丨在线中文| 日韩精品自拍偷拍| 免费一级在线观看| 久久国产精品免费视频| 免费高潮视频95在线观看网站| 国产精彩精品视频| 国产不卡精品在线| 国语精品免费视频| 日韩欧美中字| 日本a视频在线观看| 日本vs亚洲vs韩国一区三区二区 | 中文在线综合| 青青草原亚洲| 欧美日韩天堂| 亚洲少妇第一页| 国产精品99久久久久久久女警| 鲁大师私人影院在线观看| 国产精品毛片久久久久久| 精品无码久久久久久久| 欧美在线你懂的| 成人免费视频国产| 在线看日韩欧美| 国产白浆在线免费观看| 国产综合色香蕉精品| 欧美高清视频看片在线观看| 一区二区在线观| 国产精品一二| 国产大学生av| 国产精品久久久久久福利一牛影视| 懂色av.com| 制服丝袜在线91| 九色在线观看| 午夜精品久久久久久久男人的天堂| 国产精品久久久久久久久免费高清| 国产精品一区免费观看| 久久中文字幕av一区二区不卡| 国产精品333| 粉嫩一区二区三区在线看| 欧美日韩国产黄色| 欧美丝袜一区二区| 亚洲乱码国产乱码精品精软件| www.亚洲一区| 日本中文字幕一区二区| 久久艳妇乳肉豪妇荡乳av| 国产精品a久久久久| 日本人69视频| 国产精品美女一区二区在线观看| 日产欧产va高清| 欧美一级搡bbbb搡bbbb| 三区四区电影在线观看| 日韩av免费在线播放| 久久免费视频66| 久久av高潮av| 国产福利一区二区| 国产老头老太做爰视频| 欧美高清视频一二三区| 91吃瓜网在线观看| 国产精品国产三级国产aⅴ9色| 日韩av影院| 伊人成色综合网| 成人午夜视频福利| 免费一级片在线观看| 日韩欧美视频在线 | 国产91成人video| 青青草原在线亚洲| 黄色网页免费在线观看| 波多野结衣中文字幕一区二区三区 | 中文字幕永久在线不卡| 中文字幕一区二区三区人妻四季| 中文字幕精品久久| 懂色aⅴ精品一区二区三区| 丝袜足脚交91精品| 欧美aaaaaa午夜精品| 一级在线观看视频| 欧美日韩日日摸| 日日夜夜精品一区| 91亚洲永久免费精品| 亚洲欧美偷拍自拍| 国产伦精品一区二区三区妓女下载| 亚洲丝袜制服诱惑| 亚洲精品成av人片天堂无码| 久久久爽爽爽美女图片| 亚洲美女久久| 日本激情综合网| 亚洲欧美日韩系列| 午夜精品在线播放| 久久免费国产视频| 免费久久精品| 久热精品在线观看视频| 亚洲欧美另类图片小说| 国精品人妻无码一区二区三区喝尿| 久久久久日韩精品久久久男男 | 亚洲最新在线| 国产精品乡下勾搭老头1| 日本熟妇毛耸耸xxxxxx| 亚洲欧美综合精品久久成人| www.一区| 妞干网在线播放| 91蜜桃免费观看视频| 在线观看日批视频| 久久6精品影院| 在线日韩一区| 日韩高清在线一区二区| 午夜精品久久久久久久蜜桃app| 国产网站在线播放| 1卡2卡3卡精品视频| 国产亚洲午夜| 中文字幕美女视频| 日韩成人黄色av| 欧美黄色三级| 2019日韩中文字幕mv| 国产性做久久久久久| 精品人妻av一区二区三区| 欧美在线视频一区二区| 1024精品久久久久久久久| 加勒比精品视频| 3d动漫精品啪啪1区2区免费| 成人在线黄色电影| 久久精品国产精品亚洲精品色| 91欧美激情一区二区三区成人| 国产农村妇女毛片精品久久|