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

ES2018中4個(gè)有用的功能

開發(fā) 前端
ES2018 規(guī)范引入了四個(gè)新功能。這些功能包括異步迭代,rest/spread 屬性,Promise.prototype.finally() 和正則表達(dá)式改進(jìn)。本問將幫你了解這些 ES2018 功能的工作原理及使用方法。

ES2018 規(guī)范引入了四個(gè)新功能。這些功能包括異步迭代,rest/spread 屬性,Promise.prototype.finally() 和正則表達(dá)式改進(jìn)。本問將幫你了解這些 ES2018 功能的工作原理及使用方法。

異步迭代

異步迭代是討論的比較少 ES2018 功能之一。雖然還有很多關(guān)于 ES2018 其他功能的討論,但幾乎沒有關(guān)于異步迭代這方面的內(nèi)容。通過異步迭代,我們可以得到異步的可迭代對象和迭代器。

這意味著你可以把 await 關(guān)鍵字與 for…of 循環(huán)放在一起使用。你可以用這些循環(huán)對可迭代對象進(jìn)行迭代。可迭代對象的包括數(shù)組、map、set,NodeList,函數(shù)的 arguments 參數(shù),TypedArray 等。

在 ES2018 之前,for...of 循環(huán)是同步的。如果你試著迭代涉及異步操作的可迭代對象并 await,則無法正常工作。循環(huán)本身會保持同步,基本上忽略 await ,并在其內(nèi)部的異步操作可以完成之前完成迭代。

  1. // 下面的代碼在 ES2018 之前不起作用,因?yàn)檠h(huán)保持同步。 
  2. // 創(chuàng)建一個(gè)異步函數(shù): 
  3. async function processResponses(someIterable) { 
  4.   // 對可迭代對象進(jìn)行迭代 
  5.   for (let item of someIterable) { 
  6.     // 通過異步操作處理項(xiàng)目,例如promise: 
  7.     await processItem(item) 
  8.   } 

同時(shí) for...of 循環(huán)也可以與異步代碼一起使用。也就是說可以在遍歷可迭代對象時(shí)執(zhí)行一些異步操作。for...of 循環(huán)將會是異步的,讓你能夠等待異步操作完成。

需要記住的是在哪里使用 await 關(guān)鍵字。不需要把它放進(jìn)循環(huán)體中,應(yīng)該將其放在for...of關(guān)鍵字中 for 的后面。現(xiàn)在當(dāng)你用 next() 方法獲取異步迭代器的下個(gè)值時(shí),將會得到一個(gè) Promise。如果你想了解更多信息,可以在 GitHub 上去看看(https://github.com/tc39/proposal-async-iteration)。

  1. // 創(chuàng)建一個(gè)異步函數(shù): 
  2. async function processResponses(someIterable) { 
  3.   //遍歷可迭代對象并等待異步操作的結(jié)果 
  4.   for await (let item of someIterable) { 
  5.     processItem(item) 
  6.   } 

Rest/Spread 屬性

rest 和 spread 并不是真正的新功能。兩者都是在 ES6 中作為新的運(yùn)算符引入的,它們很快就開始流行起來。可以說 JavaScript 程序員喜歡它們。唯一的問題是它們只能用在數(shù)組和參數(shù)上,不過 ES2018 把這兩個(gè)功能引入了對象中。

rest 和 spread 運(yùn)算符的語法都非常簡單,由三個(gè)點(diǎn)(...)組成。這些點(diǎn)后面是要在其上使用 rest 或 spread 運(yùn)算符的對象。接下來簡單的討論一下兩者的工作原理。

對象的 rest 運(yùn)算符

rest 運(yùn)算符使你可以將對象的所有剩余對象屬性屬性提取到新對象上。要注意這些屬性必須是可枚舉的。如果你已經(jīng)對某些屬性使用了分解,那么 rest 運(yùn)算符會只提取剩余的屬性。

  1. // Rest example: 
  2.  
  3. const daysObj = { 
  4.   one: 'Monday', 
  5.   two: 'Tuesday', 
  6.   three: 'Wednesday', 
  7.   four: 'Thursday', 
  8.   five: 'Friday' 
  9.  
  10. //使用解構(gòu)將變量的前兩個(gè)屬性分配給變量。 
  11. //然后,使用rest將其余屬性分配給第三個(gè)變量。 
  12. const { one, two, ...restOfDays } = daysObj 
  13. // rest 僅提取 "three", "four" 和 "five"  
  14. // 因?yàn)槲覀円呀?jīng)提取了 "one" 和 "two"  
  15.  
  16. console.log(one) 
  17. // Output: 
  18. // 'Monday' 
  19.  
  20. console.log(two) 
  21. // Output: 
  22. // 'Tuesday' 
  23.  
  24. console.log(restOfDays) 
  25. // Output: 
  26. // { three: 'Wednesday', four: 'Thursday', five: 'Friday' } 

如果要對對象使用 rest 運(yùn)算符,需要記住兩點(diǎn):首先,只能用一次,除非把它用在嵌套對象上。其次,必須在最后使用。這就是為什么在上面的例子中,在解構(gòu)前兩個(gè)屬性之后而不是之前看到它的原因。

  1. // 這行代碼不起作用,因?yàn)榘?nbsp;rest 運(yùn)算符用在了最前面: 
  2. const { ...all, one, two } = { one: 1, two: 2, three: 3 } 
  3.  
  4. //這行能起作用: 
  5. const { one, two, ...all } = { one: 1, two: 2, three: 3 } 
  6.  
  7. // 這行不起作用,因?yàn)橥患墑e上有多個(gè) rest 運(yùn)算符: 
  8. const { one, ...some, ...end } = { /* some properties */ } 
  9.  
  10. // 這行能起作用,在多個(gè)級別上的多個(gè) rest 運(yùn)算符: 
  11. const { one, {...secondLevel }, ...firstLevel } = { /* some properties */ } 

對象的 spread 運(yùn)算符

spread 運(yùn)算符的作用是可以通過插入另一個(gè)對象的所有屬性來創(chuàng)建新對象。Spread 運(yùn)算符還允許你從多個(gè)對象插入屬性。也可以把這個(gè)運(yùn)算符與添加新屬性結(jié)合使用。

  1. // Spread example: 
  2. const myOriginalObj = { name: 'Joe Doe', age: 33 } 
  3. // 用 spread 運(yùn)算符創(chuàng)建新對象: 
  4. const myNewObj = { ...myOriginalObj } 
  5.  
  6. console.log(myNewObj) 
  7. // Output: 
  8. // { name: 'Joe Doe', age: 33 } 
  9.  
  10.  
  11. // 添加屬性的例子: 
  12. const myOriginalObj = { name: 'Caesar' } 
  13. // 用 spread 運(yùn)算符創(chuàng)建新對象 
  14. // 并添加新的屬性“genre”: 
  15. const myNewObj = { ...myOriginalObj, genre: 'Strategy' } 
  16.  
  17. console.log(myNewObj) 
  18. // Output: 
  19. // { 
  20. //   name: 'Caesar', 
  21. //   genre: 'Strategy' 
  22. // } 
  23.  
  24.  
  25. // Spread 運(yùn)算符并合并兩個(gè)對象: 
  26. const myObjOne = { title: 'Eloquent JavaScript' } 
  27. const myObjTwo = { author: 'Marijn Haverbeke' } 
  28.  
  29. const myNewObj = { ...myObjOne, ...myObjTwo } 
  30.  
  31. console.log(myNewObj) 
  32. // Output: 
  33. // { 
  34. //   title: 'Eloquent JavaScript', 
  35. //   author: 'Marijn Haverbeke' 
  36. // } 

當(dāng)從多個(gè)對象插入屬性并添加新屬性時(shí),順序很重要。

我來解釋一下,假設(shè)你要用 spread 運(yùn)算符基于兩個(gè)現(xiàn)有對象創(chuàng)建一個(gè)新對象。第一個(gè)已有對象中包含具有某些值的屬性 title。第二個(gè)對象也包含屬性 title,但是值不一樣。最終到底取哪個(gè) title?

答案是最后一個(gè)。如果對第一個(gè)對象使用 spread 運(yùn)算符,然后再對第二個(gè)對象使用,則第二個(gè) title 會生效。如果你將 spread 運(yùn)算符永在第二個(gè)對象上,則第一個(gè) title會生效。

  1. // Spread 運(yùn)算符并合并兩個(gè)對象: 
  2. const myObjOne = { 
  3.   title: 'Eloquent JavaScript', 
  4.   author: 'Marijn Haverbeke', 
  5.  
  6. const myObjTwo = { 
  7.   title: 'You Don\'t Know JS Yet', 
  8.   language: 'English' 
  9.  
  10. // 用 spread 運(yùn)算符通過組合 “myObjOne” 和 “myObjTwo” 創(chuàng)建新對象 
  11. // 注意:“myObjTwo” 中的 “title” 會將覆蓋 “myObjTwo” 的 “title” 
  12. // 因?yàn)?ldquo; myObjTwo”排在最后。 
  13. const myNewObj = { ...myObjOne, ...myObjTwo } 
  14.  
  15. console.log(myNewObj) 
  16. // Output: 
  17. // { 
  18. //   title: "You Don't Know JS Yet", 
  19. //   author: 'Marijn Haverbeke', 
  20. //   language: 'English' 
  21. // } 
  22.  
  23.  
  24. // 注意:“myObjOne” 中的 “title” 將覆蓋 “myObjTwo” 的 “title” 
  25. const myNewObj = { ...myObjTwo, ...myObjOne } 
  26.  
  27. console.log(myNewObj) 
  28. // Output: 
  29. // { 
  30. //   title: 'Eloquent JavaScript', 
  31. //   language: 'English', 
  32. //   author: 'Marijn Haverbeke' 
  33. // } 

Promise.prototype.finally()

一開始有兩個(gè)用于 Promise 的回調(diào)函數(shù)。其中一個(gè)是 then(),在實(shí)現(xiàn)諾 Promise 執(zhí)行。第二個(gè)是catch(),在 promise 被拒絕或 then() 拋出異常時(shí)執(zhí)行。ES2018 增加了用于 Promise 的第三個(gè)回調(diào)函數(shù) finally()。

每次完成 promise 時(shí),都會執(zhí)行 finally() 回調(diào),不管 promise 是否完成。這個(gè)回調(diào)的一般用于執(zhí)行應(yīng)始終發(fā)生的操作。例如關(guān)閉模態(tài)對話框、關(guān)閉數(shù)據(jù)庫連接或進(jìn)行某些清理。

  1. // finally() example: 
  2. fetch() 
  3.   .then(response => response.json()) 
  4.   .then(data => console.log(data)) 
  5.   .catch(error => console.log(error)) 
  6.   //最后做點(diǎn)什么: 
  7.   .finally(() => console.log('Operation done.')) 

對正則表達(dá)式的改進(jìn)

ES2018 還對正則表達(dá)式功能進(jìn)行了的一些改進(jìn)。這些改進(jìn)包括 s(dotAll) 標(biāo)志,后行斷言,命名捕獲組和 unicode 屬性轉(zhuǎn)義。

s(dotAll)

首先是 s(dotAll) 。與點(diǎn)(.)不同,s(dotAll) 允許對換行符及表情符號進(jìn)行匹配。

  1. // s(dotAll) example: 
  2. /hello.world/.test('hello\nworld') 
  3. // Output: 
  4. // false 
  5.  
  6. /hello.world/s.test('hello\nworld') 
  7. // Output: 
  8. // true 

后行斷言

在ES2018之前,JavaScript僅支持先行斷言。先行斷言用于基于其后的文本來匹配模式。在 ES2018 中增加了對后行斷言的支持。通過它可以基于模式之前的文本模式來進(jìn)行匹配。后行斷言的語法為 ?<=。

  1. // 后行斷言例子: 
  2. /(?<=green) apple/.test('One red apple is on the table.') 
  3. // Output: 
  4. // false 
  5.  
  6. /(?<=green) apple/.test('One green apple is on the table.') 
  7. // Output: 
  8. // true 

斷言后面也有一個(gè)反向的回溯。僅當(dāng)子字符串之前沒有斷言時(shí),此斷言才與模式匹配。對后行斷言取反操作的語法是 ?<!。

  1. /(?<!green) apple/.test('One red apple is on the table.') 
  2. // Output: 
  3. // true 
  4.  
  5. /(?<!green) apple/.test('One green apple is on the table.') 
  6. // Output: 
  7. // false 

命名捕獲組

另一個(gè)被 ES2018 引入到正則表達(dá)式的好功能是命名捕獲組。命名捕獲組的語法為 ?<some_name>。

  1. const date_pattern = /(?<day>\d{2})\/(?<month>\d{2})\/(?<year>\d{4})/ 
  2. const result = date_pattern.exec('11/12/2021') 
  3.  
  4. console.log(result) 
  5. // Output: 
  6. // [ 
  7. //   '11/12/2021', 
  8. //   '11', 
  9. //   '12', 
  10. //   '2021', 
  11. //   index: 0, 
  12. //   input: '11/12/2021', 
  13. //   groups: [Object: null prototype] { day: '11', month: '12', year: '2021' } 
  14. // ] 
  15.  
  16. console.log(result.groups.day) 
  17. // Output: 
  18. // '11' 
  19.  
  20. console.log(result.groups.month) 
  21. // Output: 
  22. // '12' 
  23.  
  24. console.log(result.groups.year) 
  25. // Output: 
  26. // '2021' 

Unicode 屬性轉(zhuǎn)義

每個(gè) unicode 字符都有許多屬性。例如:空白字符,大小寫,字母,ASCII,表情符號等。現(xiàn)在你可以在正則表達(dá)式中訪問這些屬性了。

要使用這個(gè)功能需要做兩件事。首先必須使用 /u 標(biāo)志。這個(gè)標(biāo)志告訴 JavaScript 你的字符串是一系列 Unicode 代碼點(diǎn)。第二是使用 \p{}。你要檢查的屬性位于大括號之間,反之則用 \P{}。

  1. // 用俄語創(chuàng)建一個(gè)字符串(西里爾字母): 
  2. const myStrCyr = 'Доброе утро' 
  3.  
  4. //創(chuàng)建英文字符串(拉丁字母): 
  5. const myStrLat = 'Good morning' 
  6.  
  7. //測試“ myStrCyr”是否包含西里爾字符: 
  8. /\p{Script=Cyrillic}/u.test(myStrCyr) // true 
  9.  
  10. //測試“ myStrLat”是否包含西里爾字符: 
  11. /\p{Script=Cyrillic}/u.test(myStrLat) // false 
  12.  
  13. // 測試“myStrLat” 是否包含西里爾字符: 
  14. /\p{Script=Latin}/u.test(myStrCyr) // false 
  15.  
  16. // 測試“myStrLat” 是否包含拉丁語字符: 
  17. /\p{Script=Latin}/u.test(myStrLat) // true 

 

責(zé)任編輯:趙寧寧 來源: 前端先鋒
相關(guān)推薦

2021-03-09 09:14:27

ES2019JavaScript開發(fā)

2013-11-05 10:03:22

Eclipse功能

2013-07-12 09:45:16

PHP功能

2020-06-21 13:57:21

JavaScript開發(fā)代碼

2021-04-29 08:28:24

架構(gòu)參數(shù)傳遞

2020-10-14 11:10:52

ES2020JavaScript前端

2020-10-23 19:50:15

ES2020Javascript1前端

2020-05-20 13:45:52

Linuxtouch命令

2010-07-14 10:02:47

IMAP4功能

2020-06-22 08:09:22

GitHub工具開發(fā)

2014-09-18 09:50:32

Ruby on Rai

2022-05-05 19:00:22

PythonPython特性

2015-07-22 17:19:20

Linux命令技巧

2022-01-11 19:31:33

GNOME桌面應(yīng)用

2023-11-24 08:31:03

ECMAScriptES2021

2015-10-27 11:02:06

Web開發(fā)CSS 庫

2015-10-27 15:45:27

Web開發(fā)CSS代碼

2014-06-13 11:26:53

CSS庫Web開發(fā)

2023-10-26 07:47:35

JavaScript代碼變量

2009-05-18 16:58:56

Java代碼片段
點(diǎn)贊
收藏

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

免费看91视频| 一本久道久久综合| 岛国av中文字幕| 成人在线电影在线观看视频| 91精品麻豆日日躁夜夜躁| 亚洲乱码日产精品bd在线观看| 无码精品黑人一区二区三区| 日韩中文字幕区一区有砖一区| 精品精品国产国产自在线| 国产精品一区二区在线免费观看| 三级成人黄色影院| 亚洲综合一二三区| 色狠狠久久av五月综合|| www.综合色| 奇米在线7777在线精品| 久久全国免费视频| 少妇高潮一区二区三区喷水| 日韩母乳在线| 日韩精品一区二区三区三区免费| 亚洲成人福利在线观看| 24小时免费看片在线观看| 国产精品久久久久一区二区三区共| 国产成人看片| 在线观看国产小视频| 一区二区三区四区五区在线| 久久这里只有精品99| 五月天综合视频| 红杏视频成人| 日韩一区二区电影在线| 手机视频在线观看| 午夜精品久久久久久久久久蜜桃| 亚洲午夜一二三区视频| 在线观看欧美亚洲| 国产区视频在线| 91麻豆精东视频| 51精品国产人成在线观看| 亚洲综合视频在线播放| 亚洲一区日韩| 7777精品视频| 日本一区二区三区四区五区| 欧美久久久久| 按摩亚洲人久久| 国产精品成人在线视频| 欧美精品久久久久久| 亚洲码在线观看| 美国黄色a级片| 国产精品乱战久久久| 91精品黄色片免费大全| 亚洲天堂av一区二区三区| 国产精品亚洲d| 欧洲精品一区二区| 日韩肉感妇bbwbbwbbw| 你懂得影院夜精品a| 在线视频你懂得一区| 男人的天堂日韩| 精品国产欧美日韩一区二区三区| 91黄色免费看| 欧美黄色性生活| 粉嫩av一区二区三区四区五区| 亚洲精品黄色| 久久亚洲国产成人| 一区二区三区影视| 亚洲欧美综合国产精品一区| 欧美激情精品久久久久久久变态| 久久亚洲AV无码| 亚洲激情国产| 日本高清+成人网在线观看| 色一情一乱一伦| 日本中文字幕一区二区有限公司| 国产欧美一区二区三区视频| 国产理论片在线观看| 国产精品一区二区三区网站| 国产91免费视频| 天天操天天干天天| 欧美经典一区二区三区| 咪咪色在线视频| 国产第一页在线| 精品国产乱码久久久久久婷婷| 十八禁视频网站在线观看| 亚洲a∨精品一区二区三区导航| 欧美日韩一区二区三区四区| 中文字幕55页| 欧美日韩一区二区三区不卡视频| 夜夜嗨av一区二区三区免费区| 又嫩又硬又黄又爽的视频| 中文字幕一区二区三区欧美日韩 | 一区二区三区免费网站| 日韩日韩日韩日韩日韩| 日韩电影免费观看高清完整版| 欧美日韩在线播放| 中文字幕1区2区| 国产videos久久| 欧美成人性生活| 国产91精品一区| 麻豆国产精品视频| 好吊色欧美一区二区三区 | 超碰97久久国产精品牛牛| 日韩的一区二区| 少妇高潮一区二区三区喷水| 亚洲一区久久| 91久久精品www人人做人人爽| 四虎在线免费看| 17c精品麻豆一区二区免费| 2019日韩中文字幕mv| jizz久久久久久| 日本在线播放一二三区| 一区二区三区不卡在线观看| 中文字幕欧美人妻精品一区| 51精品国产| 色久欧美在线视频观看| 可以免费看的av毛片| 久久精品国产一区二区| 久久国产精品99久久久久久丝袜| av小次郎在线| 欧美视频一区二区三区| 亚洲制服丝袜在线播放| 一区二区三区国产精华| 日韩免费在线播放| 欧美性受xxxx狂喷水| 亚洲同性gay激情无套| 国产二级片在线观看| 国产剧情一区二区在线观看| 亚洲午夜av电影| 日本熟妇乱子伦xxxx| 精品中文字幕一区二区 | 日韩欧美伦理| 欧美在线性爱视频| 欧美一区二区三区黄片| 亚洲男同性视频| 色国产在线视频| 久久91精品| 欧美中文字幕视频| 亚洲色图欧美视频| 精品国产91久久久久久| 黑人无套内谢中国美女| 久久精品一区二区不卡| 国产精品入口夜色视频大尺度| 极品美乳网红视频免费在线观看| 性做久久久久久久免费看| 亚洲国产日韩在线一区| 香蕉久久网站| 国产一区红桃视频| 日本美女高清在线观看免费| 欧美在线999| 日本乱子伦xxxx| 首页欧美精品中文字幕| 日本不卡二区高清三区| 亚洲精品88| 亚洲精选中文字幕| 无码人妻久久一区二区三区| 久久影院午夜论| 欧美韩国日本在线| 中文字幕亚洲影视| 日韩美女视频中文字幕| 国产永久av在线| 欧美三级视频在线观看 | 亚洲精品综合在线| 在线观看av免费观看| 欧美日韩三级电影在线| 国产精品国产精品国产专区蜜臀ah | 这里只有精品9| 中文字幕一区二区三区蜜月| 99中文字幕在线| 欧美午夜不卡影院在线观看完整版免费| 亚洲一区二区三区成人在线视频精品 | 成人春色在线观看免费网站| 97视频在线观看播放| 青春草在线观看| 欧美日韩激情一区二区三区| 色偷偷www8888| 国产成人av一区二区三区在线观看| 国产免费裸体视频| 欧美亚洲色图校园春色| 国产精品久久久久av| 亚洲精品传媒| 欧美zozo另类异族| 精品国产午夜福利| 中文字幕一区二区在线播放| 国产人妖在线观看| 午夜宅男久久久| 一区二区视频国产| 视频精品一区二区三区| 日本成人黄色片| 菠萝蜜视频国产在线播放| 亚洲第一页中文字幕| 91青青草视频| 亚洲狠狠丁香婷婷综合久久久| 日本黄色动态图| 免费亚洲电影在线| www.亚洲视频.com| 精品国产91久久久久久浪潮蜜月| 91久久久在线| 亚洲天堂手机| 理论片在线不卡免费观看| 五月婷婷丁香花| 6080日韩午夜伦伦午夜伦| 精品在线播放视频| 国产精品久久久久久妇女6080| 一级黄色电影片| 人人精品人人爱| 精品无码一区二区三区爱欲| 色婷婷热久久| 久久99精品久久久久久久久久| 欧美电影在线观看网站| 97超级碰在线看视频免费在线看| 国产三区视频在线观看| 精品一区二区电影| 成人av无码一区二区三区| 欧美影片第一页| 自拍偷拍欧美亚洲| 亚洲精品免费视频| 日本黄色录像视频| 久久久久99精品国产片| 欧美做受高潮中文字幕| 国产伦理精品不卡| 日韩av片网站| 免费在线成人| 欧美视频免费看欧美视频| 中文字幕一区二区三区在线视频| 日韩精品福利视频| 国产一区二区在线视频你懂的| 成人免费视频网| 快播电影网址老女人久久| 97国产在线观看| 里番在线播放| 久久成年人视频| 日本成人网址| 有码中文亚洲精品| 久草在线青青草| 亚洲精品中文字幕av| 天天躁日日躁狠狠躁喷水| 日韩三级中文字幕| 97caocao| 欧美日韩的一区二区| 一个人看的www日本高清视频| 日韩欧美在线播放| 欧美黑人一区二区| 日韩欧美在线免费| 天天干天天干天天干天天| 黄色一区二区在线观看| 国产一卡二卡在线| 亚洲国产va精品久久久不卡综合| 日本a级片视频| 亚洲精品久久7777| 亚洲欧美一区二区三区四区五区| 亚洲欧美色图小说| 69xx绿帽三人行| 一区二区三区在线视频观看| 极品久久久久久| 一区二区三区在线免费视频 | 婷婷开心激情综合| 天堂网av手机版| 精品久久久久久久久国产字幕| 日韩xxxxxxxxx| 黄色一区二区在线| 无码人妻一区二区三区免费| 欧美制服丝袜第一页| 在线观看国产一区二区三区| 91精品国产色综合久久不卡蜜臀| 国产口爆吞精一区二区| 日韩精品一区二区三区swag| 午夜激情在线视频| 国产亚洲一区精品| 欧美私人网站| 欧美激情喷水视频| 在线男人天堂| 国产欧美日韩高清| 试看120秒一区二区三区| 九色一区二区| 日本一区二区在线看| 欧美xxxx吸乳| 亚洲高清久久| 国产免费视频传媒| 韩国av一区二区三区四区| 性xxxxxxxxx| www久久精品| 91精品少妇一区二区三区蜜桃臀| 亚洲免费av高清| 日韩无码精品一区二区三区| 色丁香久综合在线久综合在线观看| 伊人网av在线| 亚洲国产欧美在线成人app| 国产在线小视频| 九九热这里只有在线精品视| 黄色污网站在线观看| 国产精品丝袜一区二区三区| av不卡一区二区| 日本在线高清视频一区| 欧美私人啪啪vps| 日本免费不卡一区二区| 久久成人久久爱| 亚洲最大免费视频| 亚洲人成伊人成综合网小说| 一区二区三区免费高清视频| 欧美无砖专区一中文字| 精品人妻无码一区二区色欲产成人| 精品视频在线导航| 国产美女福利在线| 热草久综合在线| 伊人精品综合| 亚洲午夜精品一区二区三区| 亚洲三级免费| 超碰在线资源站| 久久嫩草精品久久久久| 久久久精品一区二区涩爱| 在线观看一区二区精品视频| 囯产精品久久久久久| 中文字幕在线视频日韩| 色资源二区在线视频| 亚洲综合社区网| 日韩毛片视频| 欧美老熟妇喷水| 粉嫩一区二区三区在线看| 潮喷失禁大喷水aⅴ无码| 福利视频一区二区| 亚洲国产精品久久人人爱潘金莲| 最近2019中文字幕第三页视频 | 欧美午夜视频在线观看| 精品国产va久久久久久久| 中文字幕亚洲欧美| 最新欧美色图| 国内精品二区| 欧美久久成人| 伊人精品视频在线观看| 国产精品高潮呻吟| www.久久网| 亚洲乱码一区二区| 亚洲性色av| 久久av一区二区三区漫画| 亚洲国产精品一区| 成人做爰www看视频软件| 一区二区三区蜜桃| 国产女主播福利| 精品国偷自产在线| 亚洲伦理一区二区| 这里只有精品66| 久久99国产精品麻豆| 国产精品视频在| 在线视频欧美区| 99riav在线| 国产精品视频久| 99九九热只有国产精品| 欧美婷婷精品激情| 欧美激情在线观看视频免费| 国产在线一级片| 日韩在线观看视频免费| 97欧美成人| 椎名由奈jux491在线播放| 精品亚洲免费视频| 国产suv一区二区三区| 91精品福利在线一区二区三区| 国产日产一区二区三区| 亚洲最大av网| 国产一在线精品一区在线观看| 日韩av成人网| 亚洲h精品动漫在线观看| 同心难改在线观看| 国产成人在线一区二区| 欧美疯狂party性派对| 手机在线视频一区| 亚洲国产日韩一级| 亚洲欧美综合在线观看| 青青草原一区二区| 日本不卡免费一区| 手机看片国产精品| 婷婷成人激情在线网| 牛牛澡牛牛爽一区二区| 国产精品中文字幕久久久| 久久久久久久久久久妇女| 麻豆短视频在线观看| 欧美性极品xxxx做受| wwwww在线观看免费视频| 亚洲一区中文字幕在线观看| 在线播放不卡| 摸摸摸bbb毛毛毛片| 正在播放亚洲一区| 91破解版在线观看| 手机在线观看国产精品| 国产美女精品在线| 欧美一级特黄视频| 久久精品人人爽| 乱亲女h秽乱长久久久| 国产精品拍拍拍| 亚洲成av人**亚洲成av**| 国产高清视频在线| 97久久人人超碰caoprom欧美| 国产欧美另类| 国产美女福利视频| 日韩高清av一区二区三区| 亚洲精品伊人| 日本wwww视频| 亚洲青青青在线视频| 青青视频在线观| 2022国产精品| 日韩**一区毛片| 国产网址在线观看| 久久精品这里热有精品| 免费观看成人www动漫视频| 手机免费看av网站| 欧美天天综合色影久久精品|