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

四個Javascript 中的 For 循環

開發 前端
在 ECMAScript5(簡稱 ES5)中,有三個循環。在 2015 年 6 月發布的 ECMAScript6(簡稱 ES6)中,新增了一種循環類型。

 在 ECMAScript5(簡稱 ES5)中,有三個循環。在 2015 年 6 月發布的 ECMAScript6(簡稱 ES6)中,新增了一種循環類型。他們是:

  • for
  • for in
  • for each
  • for of

今天,就讓我們一起來看看這4個 for 循環。

1、簡單的for循環

我們來看看最常見的寫法:

 

  1. const arr = [1, 2, 3]; 
  2. for(let i = 0; i < arr.length; i++) { 
  3.  console.log(arr[i]); 

 

當循環中數組的長度沒有變化時,我們應該將數組的長度存儲在一個變量中,這樣效率會更高。下面是改進的寫法:

 

  1. const arr = [1, 2, 3]; 
  2. for(let i = 0, len = arr.length; i <len; i++) { 
  3.  console.log(arr[i]); 

 

2、for-in

2.1、 使用 for-in

通常,我們可以使用for-in來遍歷數組的內容,代碼如下:

 

  1. const arr = [1, 2, 3]; 
  2. let index
  3. for(index in arr) { 
  4.  console.log(“arr[“ + index + “] = “ + arr[index]); 

 

一般來說,操作的結果如下:

 

  1. arr[0] = 1 
  2. arr[1] = 2 
  3. arr[2] = 3 

 

但這樣做往往會產生問題。

2.2、 for-in的真相

for-in 循環遍歷對象的屬性,而不是數組的索引。所以for-in遍歷的對象不限于數組,也可以遍歷對象。示例如下:

 

  1. const person = { 
  2.  fname: “san”, 
  3.  lname: “zhang”, 
  4.  age: 99 
  5. }; 
  6. let info; 
  7. for(info in person) { 
  8.  console.log(“person[“ + info + “] = “ + person[info]); 

 

結果如下:

 

  1. person[fname] = san 
  2. person[lname] = zhang 
  3. person[age] = 99 

 

需要注意的是for-in遍歷屬性的順序是不確定的,即輸出結果的順序與對象中屬性的順序無關,也與屬性的字母順序無關,也沒有任何其他順序。

2.3 、關于數組的真相

數組是Javascript中的一個對象,Array的索引是屬性名。事實上,Javascript 中的“數組”有點誤導。

Javascript 中的數組與大多數其他語言中的數組不同。首先,Javascript 中的數組在內存中不是連續的。

其次,Array 的索引不是指偏移量。其實Array的索引不是Number類型,而是String類型。之所以能正確使用 arr[0] 之類的寫法,是因為語言可以自動改變 Number 類型。0 轉換為 String 類型的“0”。

因此,Javascript 中從來沒有 Array 索引,只有“0”、“1”等屬性。

有趣的是,每個 Array 對象都有一個 length 屬性,這使得它的行為更像其他語言中的數組。

但是為什么遍歷Array對象的時候不輸出length屬性呢?那是因為for-in只能遍歷“可枚舉屬性”,length是不可枚舉屬性,實際上Array對象還有很多其他不可枚舉屬性。

現在,讓我們回過頭來看看使用 for-in 循環數組的例子。我們修改前面遍歷數組的例子:

 

  1. const arr = [1, 2, 3]; 
  2. arr.name = “Hello world”; 
  3. let index
  4. for(index in arr) { 
  5.  console.log(“arr[“ + index + “] = “+ arr[index]); 

 

操作的結果是:

 

  1. arr[0] = 1 
  2. arr[1] = 2 
  3. arr[2] = 3 
  4. arr[name] = Hello world 

 

我們看到 for-in 遍歷我們新的“name”屬性,因為 for-in 遍歷對象的所有屬性,而不僅僅是“索引”。

同時,需要注意的是,這里輸出的索引值,即“0”、“1”、“2”不是Number類型,而是String類型,因為它們是作為屬性輸出的,不是索引,這是否意味著我們只能輸出數組的內容,而不能向我們的 Array 對象添加新屬性?答案是否定的。

因為for-in不僅遍歷數組本身的屬性,還會遍歷數組原型鏈上的所有可枚舉屬性。讓我們看一個例子:

 

  1. Array.prototype.fatherName = “Father”; 
  2. const arr = [1, 2, 3]; 
  3. arr.name = “Hello world”; 
  4. let index
  5. for(index in arr) { 
  6.  console.log(“arr[“ + index + “] = “+ arr[index]); 

 

操作的結果是:

 

  1. arr[0] = 1 
  2. arr[1] = 2 
  3. arr[2] = 3 
  4. arr[name] = Hello world 
  5. arr[fatherName] = Father 

 

至此,我們可以發現for-in并不適合遍歷Array中的元素,它更適合遍歷對象的屬性,這也是它創建的初衷。有一個例外,那就是稀疏數組,閱讀以下示例:

 

  1. let key
  2. const arr = []; 
  3. arr[0] = “a”; 
  4. arr[100] = “b”; 
  5. arr[10000] = “c”; 
  6. for(key in arr) { 
  7.  if(arr.hasOwnProperty(key) && 
  8.  /⁰$|^[1–9]\d*$/.test(key) && 
  9.  key <= 4294967294 
  10.  ) { 
  11.  console.log(arr[key]); 
  12.  } 

 

For-in 僅遍歷現有實體。上例中for-in遍歷了3次(分別遍歷屬性為“0”、“100”、“10000”的元素,普通for循環會遍歷10001次)。因此,只要處理得當,for-in 也可以在遍歷 Array 中的元素方面發揮巨大的作用。

為了避免重復工作,我們可以包裝上面的代碼:

 

  1.  function arrayHasOwnIndex(array, prop) { 
  2.  return array.hasOwnProperty(prop) && 
  3.  /⁰$|^[1–9]\d*$/.test(prop) && 
  4.  prop <= 4294967294; // 2³²-2 

 

用法示例如下:

 

  1. for (let key in arr) { 
  2.  if (arrayHasOwnIndex(arr, key)) { 
  3.  console.log(arr[key]); 
  4.  } 

 

2.4、 for-in性能

如上所述,每次迭代操作都會同時搜索實例或原型屬性。for-in 循環的每次迭代都會產生更多的開銷,所以它比其他循環類型慢,一般速度是其他循環類型的 1/7。

因此,除非您明確需要迭代具有未知數量屬性的對象,否則您應該避免使用 for-in 循環。如果需要遍歷有限數量的已知屬性列表,使用其他循環會更快,例如以下示例:

 

  1. const obj = { 
  2.  “prop1”: “value1”, 
  3.  “prop2”: “value2” 
  4. }; 
  5. const props = [“prop1”, “prop2”]; 
  6. for(let i = 0; i <props.length; i++) { 
  7.  console.log(obj[props[i]]); 

 

在上面的代碼中,對象的屬性存儲在一個數組中。與for-in搜索每個屬性相比,代碼只關注給定的屬性,節省了循環的開銷和時間。

3、forEach

在 ES5 中,引入了一個新循環,即 forEach 循環。

 

  1. const arr = [1, 2, 3]; 
  2. arr.forEach((data) => { 
  3.  console.log(data); 
  4. }); 

 

操作結果:

 

 

forEach 方法對數組中包含有效值的每一項執行一次回調函數,那些已經被刪除(使用delete 方法等)或從未賦值的項將被跳過(不包括那些未定義的項) 或空值)?;卣{函數會依次傳入三個參數:

  • 數組中當前項的值;
  • 當前項在數組中的索引;
  • 數組對象本身;

需要注意的是,forEach 遍歷的范圍會在第一次調用回調之前確定。調用 forEach 后添加到數組的項目不會被回調訪問。

如果現有值發生變化,則傳遞給callback的值就是forEach遍歷它們時的值。不會遍歷已刪除的項目。

 

  1. const arr = []; 
  2. arr[0] = “a”; 
  3. arr[3] = “b”; 
  4. arr[10] = “c”; 
  5. arr.name = “Hello world”; 
  6. arr.forEach((data, index, array) => { 
  7.  console.log(data, index, array); 
  8. }); 

 

操作結果:

  1. a 0 [“a”, 3: “b”, 10: “c”, name: “Hello world”] 
  2. b 3 [“a”, 3: “b”, 10: “c”, name: “Hello world”] 
  3. c 10 [“a”, 3: “b”, 10: “c”, name: “Hello world”] 

這里的索引是Number類型的,不會像for-in那樣遍歷原型鏈上的屬性。

因此,在使用forEach時,我們不需要特別聲明索引和要遍歷的元素,因為這些都是作為回調函數的參數。

另外,forEach 會遍歷數組中的所有元素,但是 ES5 定義了一些其他有用的方法,下面是一部分:

  • every:循環在第一次返回false后返回
  • some:循環在第一次返回 true 后返回
  • filter:返回一個元素滿足回調函數的新數組
  • map:在返回之前處理原始數組中的元素
  • reduce:依次處理數組中的元素,將上一次處理的結果作為下一次處理的輸入,最終得到最終結果。

forEach 性能

您可以看看jsPerf。在不同瀏覽器下測試的結果是forEach沒有for快。如果將測試代碼放在控制臺中,可能會得到不同的結果。主要原因是控制臺的執行環境與真實的代碼執行環境不同。

4、for-of

我們先來看一個例子:

 

  1. const arr = [‘a’, ‘b’, ‘c’]; 
  2. for(let data of arr) { 
  3.  console.log(data); 

 

運行的結果是:

 

 

為什么要引入for-of?

要回答這個問題,我們先來看看 ES6 之前的 3 種 for 循環的缺陷:

forEach 不能中斷和返回;

for-in 的劣勢更加明顯。它不僅遍歷數組中的元素,還遍歷自定義屬性,甚至訪問原型鏈上的屬性。此外,遍歷數組元素的順序可以是隨機的。

所以,針對以上缺點,我們需要對原來的for循環進行改進。但是 ES6 不會破壞您已經編寫的 JS 代碼。

目前,數以千計的網站依賴于 for-in 循環,其中一些甚至將其用于數組遍歷。通過修復 for-in 循環來添加數組遍歷支持會使這一切變得更加混亂,因此標準委員會在 ES6 中添加了一個新的循環語法來解決當前的問題 for-of 。

那么 for-of 能做什么呢?

與forEach相比,它可以正確響應break、continue、return。

for-of 循環不僅支持數組,還支持大多數類似數組的對象,例如 DOM 節點列表對象。

for-of 循環還支持字符串遍歷,它將字符串作為 Unicode 字符序列進行迭代。

for-of 還支持 Map 和 Set(都是 ES6 中的新功能)對象遍歷。

總結一下,for-of 循環具有以下特點:

這是迭代數組元素的最簡潔直接的語法。

這種方法避免了 for-in 循環的所有陷阱。

與 forEach 不同,它正確響應 break、continue 和 return 語句。

它不僅可以遍歷數組,還可以遍歷類數組對象和其他可迭代對象。

然而,應該注意的是,for-of 循環不支持普通對象,但是如果您想遍歷一個對象的屬性,您可以使用 for-in 循環(它就是這樣做的)。

最后,但并非最不重要的是,ES6 引入了另一種方法來迭代數組的值,那就是 Iterator。最后一個例子:

 

  1. const arr = [‘a’, ‘b’, ‘c’]; 
  2. const iter = arr[Symbol.iterator](); 
  3. iter.next() // { value: ‘a’, done: false } 
  4. iter.next() // { value: ‘b’, done: false } 
  5. iter.next() // { value: ‘c’, done: false } 
  6. iter.next() // { value: undefined, done: true } 

 

不過,這個內容超出了本文的范圍,Iterator 有很多要講的。

責任編輯:華軒 來源: 今日頭條
相關推薦

2022-06-27 23:31:01

JavaScript框架開發

2023-10-26 07:47:35

JavaScript代碼變量

2021-08-23 10:37:14

Javascript 機器學習阿里云

2009-03-13 09:39:34

JavaScript函數調用規則

2023-09-06 16:55:33

JavaScript閉包

2022-08-02 10:33:11

JavaScript代碼

2022-05-04 12:44:57

Python編程語言

2020-08-13 10:29:55

項目管理項目經理CIO

2021-08-14 09:48:02

ReentrantLock多線編程

2023-05-04 09:02:56

2022-07-06 10:04:45

JavaScript數組前端

2024-05-10 12:33:06

flask裝飾器

2021-01-25 10:40:56

Python 開發編程語言

2011-07-14 15:23:34

java

2022-02-23 15:09:18

數字化轉型國有企業數據

2013-03-18 13:31:28

2024-06-25 12:45:05

2020-04-14 09:54:17

首席信息官技術開發

2024-11-14 09:00:00

Python編程元編程

2011-05-18 09:32:14

java
點贊
收藏

51CTO技術棧公眾號

色喇叭免费久久综合网| 日韩欧美精品电影| 91丨九色丨黑人外教| 国产激情综合五月久久| 波多野结衣久久久久| 日韩中文字幕| 色婷婷久久久亚洲一区二区三区| 亚洲免费视频一区| 高h调教冰块play男男双性文| 在线综合亚洲| 日韩视频第一页| 日韩aaaaa| 国产高清日韩| 日韩欧美成人网| 300部国产真实乱| 国产一区电影| jlzzjlzz亚洲日本少妇| 国产精品视频区1| 日韩 国产 在线| 91不卡在线观看| 亚洲三级免费看| 人妻 日韩 欧美 综合 制服| 欧美少妇激情| 欧美丝袜一区二区| 日本丰满少妇黄大片在线观看| 手机亚洲第一页| 国产成人在线影院 | 久久丫精品久久丫| 精品国产乱码久久久久久1区2匹| 精品久久一二三区| 亚洲精品综合在线观看| 厕沟全景美女厕沟精品| 亚洲国产日韩精品| 黄色网络在线观看| av资源种子在线观看| 久久久久国产精品麻豆| 国产精品久久久久久免费观看 | 蜜桃视频在线一区| 97在线视频免费观看| 四虎精品免费视频| 日韩综合网站| 亚洲一区999| 中文字幕免费看| 欧美激情网址| 亚洲福利视频网站| 色悠悠在线视频| 日韩在线网址| 日韩精品中文字幕在线不卡尤物| 日韩av.com| 欧美日韩视频免费观看| 欧美午夜宅男影院在线观看| 色欲av无码一区二区人妻| 男女免费观看在线爽爽爽视频| 亚洲欧洲国产日韩| 樱空桃在线播放| 激情在线小视频| 中文字幕一区二区三区蜜月| 中文字幕中文字幕在线中心一区 | 久久久这里只有精品视频| 亚洲综合网在线| 天天综合精品| 欧美成人午夜剧场免费观看| 日本黄色小说视频| 欧美1区免费| 久久久久国产精品一区| 国产真实乱人偷精品视频| 国产真实久久| 国内久久久精品| 国产黄色片免费看| av成人毛片| 日本欧美黄网站| 中文字幕 欧美激情| 激情六月婷婷久久| aa成人免费视频| 五月激情婷婷网| 国产色一区二区| 亚洲精品一区二区三区av| 黄在线免费看| 亚洲成a人片在线不卡一二三区 | 青娱乐免费在线视频| 亚洲精品国产首次亮相| 欧美丰满少妇xxxxx做受| 国产午夜精品一区二区理论影院| 一区二区三区精品视频在线观看 | 久久久蜜桃一区二区| 视频在线观看91| 91久久综合亚洲鲁鲁五月天| 国产小视频一区| 久久精子c满五个校花| 日韩精品另类天天更新| a毛片在线播放| 精品日韩中文字幕| 99热一区二区| 欧美美女在线直播| 色婷婷综合久久久久| 在线看成人av| 蜜桃一区二区三区在线| 国产精品毛片va一区二区三区| 欧美视频综合| 伊人性伊人情综合网| 欧美日韩中文在线视频| 伊人久久大香| 国产午夜精品久久久| 欧美一区二区三区粗大| 在线播放日韩| 红杏成人性视频免费看| 欧美精品一区二区三区久久久| 最近中文字幕免费视频| 欧美日韩精选| 国产日韩欧美一二三区| 五月天婷婷社区| 亚洲欧美一区二区在线观看| 欧美一级片免费播放| 国产精品原创视频| 日韩av综合网| 欧美成人一二三区| 蜜桃av噜噜一区| 久久riav| 国产深夜视频在线观看| 欧美三级电影精品| 丰满少妇一区二区三区| 女人天堂亚洲aⅴ在线观看| 日韩av手机在线观看| 亚洲欧美激情在线观看| 亚洲欧洲在线观看av| 国产精品后入内射日本在线观看| 欧美电影在线观看一区| 自拍偷拍亚洲区| 日韩av大片在线观看| 国产盗摄视频一区二区三区| 综合操久久久| 91p九色成人| 亚洲欧美国产日韩中文字幕| 日韩av在线播放观看| 国产乱理伦片在线观看夜一区| 亚洲一区二区免费视频软件合集| 精品国产第一福利网站| 日韩成人在线播放| 国产精品suv一区二区69| 国产剧情在线观看一区二区| 日本丰满少妇黄大片在线观看| 欧美亚洲福利| 色妞色视频一区二区三区四区| 欧美另类高清videos的特点| 国产日韩欧美精品综合| 国产第一页视频| 偷拍亚洲色图| 欧美又大又粗又长| 欧美高清成人| 91黄视频在线| 成人一级片免费看| 日韩高清在线观看| 欧美日韩一区二区三区在线视频 | 中文一区一区三区免费在线观看| 国产精品中文久久久久久久| av小片在线| 欧美日韩一区二区在线观看| 中文字幕第69页| 精品一区二区综合| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 欧美激情影院| 欧亚精品中文字幕| 精品视频一二三| 欧美中文字幕亚洲一区二区va在线| 国内精品卡一卡二卡三| 美女看a上一区| 最新视频 - x88av| 亚洲开心激情| 5566日本婷婷色中文字幕97| 免费黄网站在线观看| 在线观看亚洲一区| 女人18毛片毛片毛片毛片区二| 国产在线一区观看| 蜜臀精品一区二区| 欧美aaaaa级| 国产精品久久久久久久久久久新郎| av亚洲在线| 日韩精品一区二区三区在线| 国产精品6666| 国产欧美日韩视频在线观看| 91热视频在线观看| 在线成人国产| 日韩中文一区| 8x国产一区二区三区精品推荐| 欧美亚洲另类激情另类| 91九色在线porn| 精品乱人伦小说| 制服丝袜在线一区| 亚洲精选视频在线| 右手影院亚洲欧美| 国内精品伊人久久久久影院对白| 妞干网在线观看视频| 日韩精品免费一区二区三区| 豆国产97在线| 久久久加勒比| 韩国福利视频一区| 97超碰国产一区二区三区| 日韩欧美国产电影| 波多野结衣高清视频| 亚洲精品国产一区二区三区四区在线| 9.1成人看片| 国产精品一区二区三区四区| 黄色一级一级片| 国语精品一区| 亚洲一二三区精品| 亚洲午夜久久| 动漫美女被爆操久久久| 欧美特黄色片| 日本欧美在线视频| 大黄网站在线观看| 色七七影院综合| 欧洲天堂在线观看| 欧美大片在线观看一区二区| 亚洲天堂中文在线| 婷婷国产在线综合| 久久精品一级片| 中文字幕欧美一| 国产精品国产三级国产专业不| 成人久久视频在线观看| 99精品999| 久久机这里只有精品| 欧美色图另类小说| 亚洲网站在线| 亚洲乱码日产精品bd在线观看| 久久人人88| 亚洲 国产 欧美一区| 日韩电影在线观看完整免费观看| 91丝袜脚交足在线播放| 欧美视频免费看| 国产美女搞久久| 国产精品成人国产| 日韩av高清不卡| 欧美freesex| 欧洲成人免费视频| 亚洲精品永久免费视频| 午夜精品久久久久久久久久久久久| 操你啦在线视频| 久久成人精品电影| 国产精品实拍| 久久亚洲春色中文字幕| 免费在线你懂的| 日韩有码在线电影| 黄色动漫在线| 久久人人爽人人爽爽久久| 91av资源在线| 神马久久久久久| 日韩理伦片在线| 色青青草原桃花久久综合| 日本韩国在线视频爽| www.日韩视频| 黄色一级片在线观看| 俺去了亚洲欧美日韩| 黄色国产网站在线播放| 欧美乱大交xxxxx另类电影| 最近中文字幕免费mv2018在线| 欧美另类暴力丝袜| 啦啦啦中文在线观看日本| 欧美国产日韩在线| 97天天综合网| 欧美一级在线亚洲天堂| 国产精品字幕| 成人免费午夜电影| 中文字幕久久精品一区二区| 国产日韩久久| 国产伦精品一区二区三区千人斩| 日本精品一区二区三区视频| 日韩精品四区| 91传媒免费视频| 国产手机视频一区二区| 久久久久久久少妇| 国产一区二区毛片| av免费观看不卡| 国产日韩成人精品| 神马午夜精品91| 亚洲一级二级在线| 国产剧情在线视频| 欧美日韩成人综合天天影院| 亚洲第一成年人网站| 亚洲精品视频网上网址在线观看 | 国产免费观看久久| 日韩欧美国产成人精品免费| 亚洲国产精品麻豆| 久久精品国产亚洲av麻豆蜜芽| 91精品啪在线观看国产60岁| 懂色av一区二区三区四区| 精品丝袜一区二区三区| 日本www在线观看| 久久久在线观看| 青草综合视频| 国产一区免费在线| 欧美成人自拍| 成人黄色av片| 国产一区二区三区在线观看免费视频| 中文字幕在线永久| 中文字幕一区二区5566日韩| 日韩美女一级片| 欧美日韩一区三区四区| 国精品人妻无码一区二区三区喝尿| 亚洲无av在线中文字幕| 女子免费在线观看视频www| 国产不卡精品视男人的天堂| 91免费精品国偷自产在线在线| 日韩中文一区二区三区| 精品1区2区3区4区| 亚洲欧美手机在线| 久久天堂av综合合色蜜桃网| 久久久久亚洲AV成人| 日本乱码高清不卡字幕| 亚洲国产日韩在线观看| 日韩中文在线中文网在线观看 | 欧美激情1区2区| 成年人小视频网站| 成人午夜短视频| 欧美特级一级片| 欧美日韩一级二级三级| 深夜福利视频一区| 久久久久国产精品免费网站| 久久国际精品| 亚洲午夜精品一区二区三区| 久久福利影视| 丰满少妇一区二区三区| 亚洲1区2区3区4区| 亚洲va久久久噜噜噜无码久久| 日韩在线观看免费高清| 欧美日韩亚洲国产| 久久精品久久精品国产大片| 亚洲网站啪啪| 日本精品一二三| 一区二区久久久久久| 国产夫妻性生活视频| xxx成人少妇69| 日日夜夜综合| 在线一区高清| 久久99国产精品尤物| 一级二级黄色片| 欧美无人高清视频在线观看| 国产人成在线视频| 热久久免费视频精品| 亚洲三级精品| 久久精品午夜福利| 久久久精品欧美丰满| 中文字幕视频网站| 国产偷亚洲偷欧美偷精品| 日本蜜桃在线观看视频| 久久久精品有限公司| 国产欧美欧美| 午夜理伦三级做爰电影| 色综合久久久久综合体桃花网| 欧美精品a∨在线观看不卡| 热久久这里只有精品| 在线看成人短视频| 黄色一级大片在线观看| 国产欧美在线观看一区| 中文字幕网址在线| 日韩中文字幕在线观看| 免费欧美网站| 国产自产在线视频| 9l国产精品久久久久麻豆| 日本中文字幕在线| 在线视频免费一区二区| 亚洲精品成人一区| 麻豆映画在线观看| 99久久精品免费| 免费黄色小视频在线观看| 日韩中文字幕av| 无码国模国产在线观看| 黄网站欧美内射| 久久久久国产一区二区三区四区| 怡红院男人的天堂| 麻豆成人在线看| 精品伊人久久久| 在线免费视频a| 亚洲卡通欧美制服中文| 午夜影院在线视频| 国产99在线|中文| 久久精品免费一区二区三区| 精品人妻在线视频| 欧美性猛交xxxxx水多| 乱人伦中文视频在线| 国产精品青青草| 日韩av成人高清| 久久久久97国产| 亚洲欧美日韩另类| 爱情电影网av一区二区| 欧美乱大交xxxxx潮喷l头像| 国产亚洲视频系列| а√中文在线资源库| 亲子乱一区二区三区电影| 亚洲欧美网站在线观看| 精品人妻一区二区免费视频| 欧美日韩国产美| 国产伦理精品| 亚洲免费av网| 972aa.com艺术欧美| 国产精品久久久久久久久久久久久久久久 | 91麻豆制片厂| 亚洲成人在线视频播放| 色猫猫成人app| 欧美大片在线播放| 亚洲视频网在线直播|