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

即將發布的 ES2021 中有哪些有趣的功能

開發 前端
在本文中,你將將會了解五個最有趣的功能:String.prototype.replaceAll(),數字分隔符,邏輯賦值運算符,Promise.any(),WeakRef 和Finalizers。

本文轉載自微信公眾號“前端先鋒”(jingchengyideng)。

簡述

ES2021(ES12)將于 2021 年中發布。在本文中,你將將會了解五個最有趣的功能:String.prototype.replaceAll(),數字分隔符,邏輯賦值運算符,Promise.any(),WeakRef 和Finalizers。

本文所描述的五個功能目前都處于第 4 階段。這意味著它們已經完成,并將要在 JavaScript 引擎中實現了。這意味著你不會浪費時間去學習一些可能永遠也不會出現的東西。

這些功能不久將會發布。如果有興趣,可以到官方 Ecma TC39 GitHub (https://github.com/tc39/proposals) 去了解有關其他提案的更多信息。這個 Github 庫跟蹤了所有提案以及其當前所處的階段。

String.prototype.replaceAll()

先從一個小功能 replaceAll() 開始,這是對 JavaScript 語言的一個補充。當你要替換字符串中多次出現的匹配模式時,目前可以用 replace() 方法,但問題是它只能替換第一次出現的那個。

這并不意味著 replace() 不能替換所有出現的匹配模式,只不過你必須用正則表達式才行。如果你可以接受那就沒事兒了。不過對于很多 js 程序員來說,正則表達式并不是他們的菜(實際上是懶得學!)。

如果你就是這樣的 js 程序員,肯定喜歡新的 replaceAll() 方法。它的工作方式與 replace() 類似,區別在于 replaceAll() 可以不用正則表達式就能替換所有出現的模式。

replaceAll() 也能接受正則表達式,你完全可以用它代替 replace() 。

  1. // 聲明一個字符串 
  2. let str = 'There are those who like cats, there those who like watching cats and there are those who have cats.' 
  3.  
  4. // 用 dogs 替換所有的“cats”: 
  5. strstr = str.replaceAll('cats', 'dogs') 
  6. console.log(str) 
  7. // Output: 
  8. // 'There are those who like dogs, there those who like watching dogs and there are those who have dogs.' 
  9.  
  10. // 用 replace() 的寫法: 
  11. strstr = str.replace(/cats/g, 'dogs') 
  12. console.log(str) 
  13. // Output: 
  14. // 'There are those who like dogs, there those who like watching dogs and there are those have dogs.' 

數字分隔符

這是 JavaScript ES2021的一個非常小的功能,可以讓你在處理大量數字時更好過一點。數字分隔符提供了一種能使大數字更易于閱讀和使用的簡單方法。語法也很簡單:一個下劃線 _。

  1. // 不帶數字分隔符的 Number  
  2. const num = 3685134689 
  3.  
  4. // 帶數字分隔符的 Number  
  5. const num = 3_685_134_689 

不過數字分隔符只是在視覺上提供一些幫助。在使用時不會對數值本身產生任何影響。

  1. // 帶數字分隔符的 Number  
  2. const num = 3_685_134_689 
  3.  
  4. // 輸出: 
  5. console.log(num) 
  6. // Output: 
  7. // 3685134689 

邏輯賦值運算符

JavaScript 允許在布爾上下文中使用邏輯運算符。例如在 if ... else語句和三目運算符中檢測是 true 還是 false。ES2021 的邏輯賦值運算符將邏輯運算符與賦值表達式(=)組合在了一起。

在 JavaScript 中已經有了一些賦值運算符,例如:加法賦值(+=),減法賦值(-=),乘法賦值(*=)等。在 ES2021 中又增加了對邏輯運算符 &&,|| 和 ??([空值合并)的支持。

  1. ////////////////// 
  2. // 邏輯與賦值運算符 (&&=) 
  3. ////////////////// 
  4. x &&= y 
  5.  
  6. // 以上代碼相當于: 
  7. xx = x && d 
  8. // 或者: 
  9. if (x) { 
  10.   x = y 
  11.  
  12. // 例1: 
  13. let x = 3  
  14. let y = 0  
  15. x &&= y 
  16. console.log(x) 
  17. // Output: 
  18. // 0 
  19.  
  20. // 例 2: 
  21. let x = 0  
  22. let y = 9  
  23. x &&= y 
  24. console.log(x) 
  25. // Output: 
  26. // 0 
  27.  
  28. // 例 3: 
  29. let x = 3 // Truthy value. 
  30. let y = 15 // Truthy value. 
  31. x &&= y 
  32. console.log(x) 
  33. // Output: 
  34. // 15 
  35.  
  36.  
  37. ////////////////// 
  38. // 邏輯或賦值運算符 (||=): 
  39. x ||= y 
  40.  
  41. // 相當于: 
  42. xx = x || y 
  43. // 或者: 
  44. if (!x) { 
  45.   x = y 
  46.  
  47. // 例 1: 
  48. let x = 3 
  49. let y = 0 
  50. x ||= y 
  51.  
  52. console.log(x) 
  53. // Output: 
  54. // 3 
  55.  
  56. // 例 2: 
  57. let x = 0  
  58. let y = 9  
  59. x ||= y 
  60.  
  61. console.log(x) 
  62. // Output: 
  63. // 9 
  64.  
  65. // 例 3: 
  66. let x = 3  
  67. let y = 15 
  68. x ||= y 
  69.  
  70. console.log(x) 
  71. // Output: 
  72. // 3 
  73.  
  74.  
  75. ///////////////////////// 
  76. // 空值合并賦值運算符 (??=): 
  77. ///////////////////////// 
  78. x ??= y 
  79.  
  80. // 相當于: 
  81. xx = x ?? y 
  82. // 或者: 
  83. if (x == null || x == undefined) { 
  84.     x = y 
  85.  
  86. // 例 1: 
  87. let x = null  
  88. let y = 'Hello'  
  89. x ??= y 
  90. console.log(x) 
  91. // Output: 
  92. // 'Hello' 
  93.  
  94. // 例 2: 
  95. let x = 'Jay'  
  96. let y = 'Hello'  
  97. x ??= y 
  98. console.log(x) 
  99. // Output: 
  100. // 'Jay' 
  101.  
  102. // 例 3: 
  103. let x = 'Jay' 
  104. let y = null  
  105. x ??= y 
  106. console.log(x) 
  107. // Output: 
  108. // 'Jay' 
  109.  
  110. // 例 4: 
  111. let x = undefined  
  112. let y = 'Jock'  
  113. x ??= y 
  114.  
  115. console.log(x) 
  116. // Output: 
  117. // 'Jock' 

看一下上面的例子。首先是 x && = y。僅當 x 為真時,才將 y 賦值給 x。其次是 x || = y,僅當 x 為假時,才將 y 賦值給 x。如果 x 是真,而 y 是假,則不會進行賦值。

如果 x 和 y 都是假,也會發生同樣的情況。最后是 x ?? = y。僅當 x 為 null 或 undefined 時,才將 y 分配給 x。如果 x 既不是 null 也不是 undefined 則不會進行賦值,如果 y 為 null 或 undefined 也一樣。

Promise.any()

在 ES6 中引入了 Promise.race() 和 Promise.all() 方法,ES2020 加入了 Promise.allSettled()。ES2021 又增加了一個使 Promise 處理更加容易的方法:Promise.any() 。

Promise.any() 方法接受多個 promise,并在完成其中任何一個的情況下返回 promise。其返回的是 Promise.any() 完成的第一個 promise。如果所有 promise 均被拒絕,則 Promise.any() 將返回 AggregateError,其中包含拒絕的原因。

  1. // 例 1: 全部被完成: 
  2. // 創建 promises: 
  3. const promise1 = new Promise((resolve, reject) => { 
  4.   setTimeout(() => { 
  5.     resolve('promise1 is resolved.') 
  6.   }, Math.floor(Math.random() * 1000)) 
  7. }) 
  8.  
  9. const promise2 = new Promise((resolve, reject) => { 
  10.   setTimeout(() => { 
  11.     resolve('promise2 is resolved.') 
  12.   }, Math.floor(Math.random() * 1000)) 
  13. }) 
  14.  
  15. const promise3 = new Promise((resolve, reject) => { 
  16.   setTimeout(() => { 
  17.     resolve('promise3 is resolved.') 
  18.   }, Math.floor(Math.random() * 1000)) 
  19. }) 
  20.  
  21. ;(async function() { 
  22.   // Await the result of Promise.any(): 
  23.   const result = await Promise.any([promise1, promise2, promise3]) 
  24.   console.log(result) 
  25.   // Output: 
  26.   // 'promise1 is resolved.', 'promise2 is resolved.' or 'promise3 is resolved.' 
  27. })() 
  28.  
  29.  
  30. // 例 2: 部分完成: 
  31. const promise1 = new Promise((resolve, reject) => { 
  32.   setTimeout(() => { 
  33.     resolve('promise1 is resolved.') 
  34.   }, Math.floor(Math.random() * 1000)) 
  35. }) 
  36.  
  37. const promise2 = new Promise((resolve, reject) => { 
  38.   setTimeout(() => { 
  39.     reject('promise2 was rejected.') 
  40.   }, Math.floor(Math.random() * 1000)) 
  41. }) 
  42.  
  43. ;(async function() { 
  44.   // Await the result of Promise.any(): 
  45.   const result = await Promise.any([promise1, promise2]) 
  46.   console.log(result) 
  47.   // Output: 
  48.   // 'promise1 is resolved.' 
  49. })() 
  50.  
  51.  
  52. // 例 3: 均被拒絕: 
  53. const promise1 = new Promise((resolve, reject) => { 
  54.   setTimeout(() => { 
  55.     reject('promise1 was rejected.') 
  56.   }, Math.floor(Math.random() * 1000)) 
  57. }) 
  58.  
  59. const promise2 = new Promise((resolve, reject) => { 
  60.   setTimeout(() => { 
  61.     reject('promise2 was rejected.') 
  62.   }, Math.floor(Math.random() * 1000)) 
  63. }) 
  64.  
  65. ;(async function() { 
  66.   // Use try...catch to catch the AggregateError: 
  67.   try { 
  68.     // Await the result of Promise.any(): 
  69.     const result = await Promise.any([promise1, promise2]) 
  70.   } 
  71.  
  72.   catch (err) { 
  73.     console.log(err.errors) 
  74.     // Output: 
  75.     // [ 'promise1 was rejected.', 'promise2 was rejected.' ] 
  76.   } 
  77. })() 

弱引用:WeakRef

最后一個搶眼的功能是 WeakRefs。在 JavaScript 中,當你創建了一個創建對象的引用時,這個引用可以防止對象被 gc 回收,也就是說 JavaScript 無法刪除對象并釋放其內存。只要對該對象的引用一直存在,就可以使這個對象永遠存在。

ES2021 了新的類 WeakRefs。允許創建對象的弱引用。這樣就能夠在跟蹤現有對象時不會阻止對其進行垃圾回收。對于緩存和對象映射非常有用。

必須用 new關鍵字創建新的 WeakRef ,并把某些對象作為參數放入括號中。當你想讀取引用(被引用的對象)時,可以通過在弱引用上調用 deref() 來實現。下面是一個非常簡單的例子。

  1. const myWeakRef = new WeakRef({ 
  2.   name: 'Cache', 
  3.   size: 'unlimited' 
  4. }) 
  5.  
  6. console.log(myWeakRef.deref()) 
  7. // Output: 
  8. // { name: 'Cache', size: 'unlimited' } 
  9.  
  10. console.log(myWeakRef.deref().name) 
  11. // Output: 
  12. // 'Cache' 
  13.  
  14. console.log(myWeakRef.deref().size) 
  15. // Output: 
  16. // 'unlimited' 

Finalizers 和 FinalizationRegistry

與 WeakRef 緊密相連的還有另一個功能,名為 finalizers 或 FinalizationRegistry。這個功能允許你注冊一個回調函數,這個回調函數將會在對象被 gc 回收時調用。

  1. // 創建 FinalizationRegistry: 
  2. const reg = new FinalizationRegistry((val) => { 
  3.   console.log(val) 
  4. }) 
  5.  
  6. ;(() => { 
  7.   // 創建新對象: 
  8.   const obj = {} 
  9.  
  10.   //為 “obj” 對象注冊 finalizer: 
  11.   //第一個參數:要為其注冊 finalizer 的對象。 
  12.   //第二個參數:上面定義的回調函數的值。 
  13.   reg.register(obj, 'obj has been garbage-collected.') 
  14. })() 
  15. // 當 "obj" 被gc回收時輸出: 
  16. // 'obj has been garbage-collected.' 

官方建議不要輕易使用 WeakRef 和 finalizer。其中一個原因是它們可能不可預測,另一個是它們并沒有真正幫 gc 完成工作,實際上可能會gc的工作更加困難。你可以在它的提案(https://github.com/tc39/proposal-weakrefs#a-note-of-caution)中詳細了解其原因。

總結

與以前的 JavaScript 規范(例如 ES6 和 ES2020)相比,看上去 ES2021的更新不多,但是這些有趣的功能值得我們關注。

 

責任編輯:趙寧寧 來源: 前端先鋒
相關推薦

2023-11-24 08:31:03

ECMAScriptES2021

2021-09-04 05:00:26

ESES2021ES12

2020-07-29 10:00:38

PythonEllipsis索引

2009-10-23 14:22:59

Windows 7微軟隱藏功能

2023-05-22 16:03:00

Javascript開發前端

2020-10-14 13:12:19

Windows 10操作系統微軟

2020-07-26 12:01:08

PythonPython 3.8開發

2018-03-04 08:37:17

谷歌Android開發者

2018-03-05 11:10:10

Android P工程師谷歌

2022-04-02 10:31:32

ThunderbirLinux

2023-08-13 16:32:12

JavaScript

2020-11-23 11:34:52

ES6

2024-10-18 14:52:16

2011-01-26 11:38:37

BlackBerry

2016-11-22 14:12:13

2021-03-03 12:33:31

微軟Windows SerInsider

2025-03-19 09:55:17

2024-04-29 13:54:12

iOS 18蘋果

2017-09-06 15:14:25

蘋果發布iOS 11

2020-10-16 18:53:00

Windows微軟操作系統
點贊
收藏

51CTO技術棧公眾號

色悠悠亚洲一区二区| www.日韩大片| 欧美成人午夜视频| 亚洲熟女乱综合一区二区三区| 少妇在线看www| 国产精品乱码一区二三区小蝌蚪| 亚洲一区二区三区香蕉| 国产毛片aaa| 欧美韩日一区| 日韩久久免费电影| 亚洲成人手机在线观看| 国产精品久久久久av电视剧| 一区二区理论电影在线观看| 欧洲久久久久久| 亚洲AV无码国产精品午夜字幕| 久久蜜桃精品| 国内精品免费午夜毛片| 国产一二三av| 你懂的视频欧美| 精品裸体舞一区二区三区| 在线免费观看av的网站| 国产乱码精品一区二三赶尸艳谈| 亚洲欧美综合另类在线卡通| 欧美日韩在线不卡一区| 好男人在线视频www| 久久av中文字幕片| 国产精品一区二区久久久| 91看片在线播放| 欧美国产91| 久久精品国产久精国产一老狼 | 久久久国产精品黄毛片| 日韩精品久久| 亚洲网在线观看| av网页在线观看| 福利电影一区| 精品国产亚洲在线| 日本特黄在线观看| 国产成人免费视频网站视频社区| 在线观看一区二区视频| wwwxxx黄色片| 中文字幕在线视频久| 亚洲成人激情av| 欧美日韩dvd| gogo在线观看| 亚洲免费在线看| 大桥未久一区二区| 男人的天堂在线视频免费观看 | 99视频精品在线| 97久久天天综合色天天综合色hd | 亚洲一区二区在线看| 国产永久免费高清在线观看视频| 26uuu欧美| 久久久久久a亚洲欧洲aⅴ| 色哟哟中文字幕| 99久久综合狠狠综合久久| 国精产品一区二区| 日本一区高清| 久久精品人人做人人综合| 日本午夜精品电影| www.亚洲免费| 亚洲色图在线看| 精品人妻大屁股白浆无码| 免费在线看电影| 午夜成人免费视频| 日韩精品视频久久| 成人免费网站www网站高清| 在线视频欧美精品| 午夜精品久久久久久久99热影院| 国产电影一区| 精品国产乱码久久久久久久| 亚洲男人在线天堂| 国产亚洲精品美女久久久久久久久久| 在线观看日韩www视频免费| 国产视频不卡在线| 欧美精品三区| 欧美专区在线观看| 中文字幕免费观看视频| 国产精品一区免费视频| 精品无人区一区二区三区| 久久久久久久影视| 国产精品成人免费在线| 日本a在线天堂| 日本а中文在线天堂| 欧美在线观看视频在线| 欧美国产日韩在线视频| 日韩系列在线| 最近更新的2019中文字幕| 久久久久免费看| 蜜桃av综合| 96pao国产成视频永久免费| 五月婷在线视频| 国产精品女同一区二区三区| 欧美日韩午夜爽爽| 成人短视频app| 91精品在线麻豆| 无码人妻精品一区二区三区温州 | 91麻豆精品国产综合久久久| 欧美精品一区二区三区蜜桃| 中文字幕免费视频| 欧美性久久久| 国产精品久久久久久亚洲影视| 国产成a人亚洲精v品无码| 91老师国产黑色丝袜在线| 亚洲av综合色区| 爱情电影社保片一区| 日韩一区二区在线看| 欧美特黄一区二区三区| 国内一区二区三区| 91精品国产自产在线观看永久| 丰满熟妇乱又伦| 国产精品蜜臀av| 欧美aⅴ在线观看| 中文字幕一区图| 久久精品成人一区二区三区 | 7777精品伊人久久久大香线蕉 | 日本国产在线观看| 亚洲视频你懂的| 手机看片福利盒子久久| 日韩a级大片| 久久久久成人网| 国产日产亚洲系列最新| 亚洲国产成人一区二区三区| 黄色大片中文字幕| 日韩一区二区三区色| 伊人久久综合97精品| 日本在线观看视频网站| 国产成人自拍网| 一级全黄肉体裸体全过程| 日本欧美韩国| 亚洲人成欧美中文字幕| 一级片中文字幕| 成人高清av在线| www.成年人视频| 91蜜桃臀久久一区二区| 久久成人精品电影| 国产毛片毛片毛片毛片毛片| 国产精品成人在线观看| 三上悠亚av一区二区三区| 少妇精品久久久一区二区三区| 欧美有码在线视频| 无码h黄肉3d动漫在线观看| 亚洲午夜av在线| 亚洲性图第一页| 激情综合激情| 国产欧美日韩伦理| 77thz桃花论族在线观看| 欧美r级电影在线观看| 久久精品波多野结衣| 国产美女av一区二区三区| 国产又爽又黄ai换脸| 成人久久精品| 欧美日本啪啪无遮挡网站| 亚洲va欧美va| 亚洲高清免费观看高清完整版在线观看| 一个人看的视频www| 好看不卡的中文字幕| 国产精品一区二区三区精品| heyzo一区| 亚洲欧美第一页| 亚洲婷婷久久综合| |精品福利一区二区三区| 中文av字幕在线观看| 午夜精品视频| 国产精品永久入口久久久| f2c人成在线观看免费视频| 日韩精品在线免费播放| 国产又粗又猛又爽又| 国产精品免费人成网站| 亚洲制服在线观看| 亚洲国产专区| 日韩高清国产一区在线观看| 四虎永久精品在线| 久久久久久噜噜噜久久久精品| 天堂成人在线观看| 在线免费观看日本一区| 国产性生活大片| av不卡免费电影| 人人爽人人av| 国产一区欧美| 欧美亚洲免费在线| 亚洲一区二区av| 1769国产精品| 麻豆传媒视频在线| 亚洲精品一线二线三线| 久久午夜鲁丝片| 亚洲愉拍自拍另类高清精品| 亚洲av综合一区二区| 精品亚洲免费视频| 成人毛片一区二区| 国产精品久久久久久久久久10秀 | 蜜桃在线一区二区| 欧洲av在线精品| 久久这里只有精品国产| 国产网红主播福利一区二区| 91精产国品一二三| 日韩国产在线观看一区| 日本久久久网站| 日产午夜精品一线二线三线| 国产欧美丝袜| 99国内精品久久久久| 欧美在线中文字幕| 香蕉久久aⅴ一区二区三区| 亚洲人成自拍网站| 超碰在线观看99| 欧美日韩一区二区三区高清| 日本三级小视频| 一区二区三区在线观看欧美 | 久久国产成人精品| 久久精品国产美女| 中文字幕一区二区三区四区久久| 国产欧美日韩精品专区| 欧美a级在线观看| 欧美精品制服第一页| 午夜视频在线看| 亚洲男人天堂网| 天堂在线中文网| 精品国内二区三区| 国产xxxx在线观看| 7777精品伊人久久久大香线蕉最新版 | 第一会所sis001亚洲| 国内精品二区| 98视频精品全部国产| 91免费看国产| 欧美一区=区三区| 国产精品国产三级国产aⅴ浪潮 | 欧美男人的天堂一二区| 激情网站在线观看| 婷婷六月综合网| 国产午夜久久久| 一区二区三区四区激情| 小早川怜子一区二区的演员表| 国产欧美一区二区三区鸳鸯浴| 久久国产精品影院| 99国产精品久久久| 精品国产av色一区二区深夜久久| 国产·精品毛片| 涩视频在线观看| 国产成人av电影免费在线观看| 日本精品一区在线| 国产一区二区在线视频| 欧美视频亚洲图片| 国产精品资源在线看| 亚洲精品免费一区亚洲精品免费精品一区| 美国一区二区三区在线播放| 日韩爱爱小视频| 蜜臀av一区二区三区| 日韩中文字幕a| 极品少妇一区二区| 亚洲精品综合在线观看| 国产一区在线精品| 国产精品久久久久野外| 国产91高潮流白浆在线麻豆| 在线精品视频播放| 91在线国产福利| 能免费看av的网站| 中文字幕成人网| 午夜爽爽爽男女免费观看| 亚洲精品水蜜桃| 日本三级片在线观看| 精品久久久视频| 小泽玛利亚一区二区三区视频| 欧美日韩中文一区| 国产女人18毛片18精品| 日韩视频中午一区| 无码国产伦一区二区三区视频 | 在线成人高清不卡| www.av在线.com| 日韩激情av在线播放| 国产日韩精品在线看| 久久久国产精品x99av| 欧美草逼视频| 日韩av免费在线观看| 久久91视频| 粉嫩精品一区二区三区在线观看| 久久精品亚洲成在人线av网址| 欧美日韩精品免费观看| 五月天久久久| 日本欧美黄色片| 欧美aaa在线| 岛国精品一区二区三区| 91女神在线视频| 日韩av手机在线免费观看| 亚洲电影一级黄| 国产精品尤物视频| 欧美v国产在线一区二区三区| 日韩av视屏| 久久躁日日躁aaaaxxxx| 欧美激情20| 成人女保姆的销魂服务| 日韩mv欧美mv国产网站| 色乱码一区二区三区熟女| 国产精品一国产精品k频道56| 成人不卡免费视频| 91在线观看免费视频| 91成人福利视频| 色婷婷综合久久久中文一区二区 | 亚洲男人天堂久| 午夜伦理在线视频| 国产精欧美一区二区三区| 成人在线视频中文字幕| 亚洲自拍三区| 午夜在线观看免费一区| 韩国一区二区三区四区| 国产日产精品一区| 亚洲国产成人精品激情在线| 在线播放中文一区| 国产福利在线视频| 97久久国产精品| 精品三级国产| 亚欧洲精品在线视频免费观看| 亚洲国产综合在线看不卡| 欧美性受xxxxxx黑人xyx性爽| 国产午夜三级一区二区三| 在线免费观看毛片| 欧美一区二区精美| 天堂资源在线中文| 国产成人亚洲综合91| 免费成人三级| 妺妺窝人体色777777| 国产一区二区久久| 久久久久麻豆v国产| 欧美在线观看一二区| 黄上黄在线观看| 欧美在线www| 欧美一级二级三级视频| 国产一二三在线视频| 国产精品影视在线| 日本青青草视频| 91精选在线观看| 18+视频在线观看| 91夜夜揉人人捏人人添红杏| 久久成人综合| 天天干天天操天天玩| 中文字幕高清一区| 亚洲中文一区二区三区| 中文字幕亚洲二区| 91p九色成人| 伊人精品久久久久7777| 免费观看在线色综合| 999精品久久久| 欧美人与性动xxxx| 毛片在线视频| 亚洲一区二区三区777| 你懂的国产精品永久在线| 99久久综合网| 亚洲国产精品一区二区久久 | 一区二区日韩| 欧美一区二区视频在线播放| 国产成人精品免费视频网站| 青青草手机视频在线观看| 欧美va天堂va视频va在线| 91av久久| 日本一区二区三区视频免费看| 人禽交欧美网站| 91香蕉一区二区三区在线观看| 欧美一区二区三区四区在线观看| 污影院在线观看| 国产亚洲福利社区| 天堂精品中文字幕在线| 日本精品久久久久中文| 欧美一区二区三区在线观看| 男人添女人下部高潮视频在线观看| 国产在线精品一区二区中文| 久久久精品五月天| 呻吟揉丰满对白91乃国产区| 日韩一区二区三区视频在线观看 | 国产精品久久久久久久久| 日韩成人精品一区二区| 99999精品| 欧美日韩国产激情| av网站在线播放| 91在线观看网站| 欧美亚洲三区| 五月天免费网站| 欧美va亚洲va国产综合| 欧美一区久久久| 成人毛片100部免费看| 99精品久久久久久| 一二三四区在线| 久久久久久久一区二区| 欧美一区二区麻豆红桃视频| 青青草精品在线| 欧美日韩一区免费| 老司机精品影院| 久久66热这里只有精品| 精品一区二区在线视频| 日韩av在线电影| 色妞在线综合亚洲欧美| 美国十次av导航亚洲入口| 最新天堂中文在线| 都市激情亚洲色图| 精品黄色免费中文电影在线播放| 精品欧美日韩| 韩国三级电影一区二区| 久久久久久少妇| 欧美精品在线免费播放| 郴州新闻综合频道在线直播| 中文字幕三级电影| 欧美一区二区三区视频| 欧美专区福利免费|