亭亭五月天在线观看,亭亭五月天在线观看,国产最新av一区二区,国产 高清 中文字幕,99re热久久亚洲综合精品成人,熟妇 一区二区三区,一级做a爰片性色毛片武则天,美女的骚穴视频播放,国产美女午夜免费视频

首頁>國內(nèi) > 正文

談?wù)勄岸四K化的演變歷程-世界熱文

2023-05-24 11:14:10來源:前端充電寶

隨著前端項(xiàng)目越來越大,代碼復(fù)雜性不斷增加,對于模塊化的需求越來越大。模塊化是工程化基礎(chǔ),只有將代碼模塊化,拆分為合理單元,才具備調(diào)度整合的能力。下面就來看看模塊化的概念,以及不同模塊化方案的使用方式和優(yōu)缺點(diǎn)。


(相關(guān)資料圖)

1、模塊概述

由于代碼之間會發(fā)生大量交互,如果結(jié)構(gòu)不合理,這些代碼就會變得難以維護(hù)、難以測試、難以調(diào)試。而使用模塊化就解決了這些問題,模塊化的特點(diǎn)如下:

可重用性:當(dāng)應(yīng)用被組織成模塊時,可以方便的在其他地方重用這些模塊,避免編寫重復(fù)代碼,從而加快開發(fā)流程;

可讀性:當(dāng)應(yīng)用變得越來越復(fù)雜時,如果在一個文件中編寫所有功能,代碼會變得難以閱讀。如果使用模塊設(shè)計(jì)應(yīng)用,每個功能都分布在各自的模塊中,代碼就會更加清晰、易讀;

可維護(hù)性:軟件的美妙之處在于進(jìn)化,從長遠(yuǎn)來看,我們需要不斷為應(yīng)用增加新的功能。當(dāng)應(yīng)用被結(jié)構(gòu)化為模塊時,可以輕松添加或刪除功能。除此之外,修復(fù)錯誤也是軟件維護(hù)的一部分,使用模塊就可以更快速地定位問題。

模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可以將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口,模塊間具有透明性。通過將代碼進(jìn)行模塊化分隔,每個文件彼此獨(dú)立,開發(fā)者更容易開發(fā)和維護(hù)代碼,模塊之間又能夠互相調(diào)用和通信,這就是現(xiàn)代化開發(fā)的基本模式。

(2)模式

JavaScript 模塊包含三個部分:

導(dǎo)入:在使用模塊時,需要將所需模塊作為依賴項(xiàng)導(dǎo)入。例如,如果想要創(chuàng)建一個 React 組件,就需導(dǎo)入 react 模塊。要使用像 Lodash 這樣的工具庫,就需要安裝并導(dǎo)入它作為依賴項(xiàng);代碼:模塊具體代碼;導(dǎo)出:模塊接口,從模塊中導(dǎo)出的內(nèi)容可供導(dǎo)入模塊的任何地方使用。(3)類型

模塊化的貫徹執(zhí)行離不開相應(yīng)的約定,即規(guī)范。這是能夠進(jìn)行模塊化工作的重中之重。實(shí)現(xiàn)模塊化的規(guī)范有很多,比如:AMD、RequireJS、CMD、SeaJS、UMD、CommonJS、ES6 Module。除此之外,IIFE(立即執(zhí)行函數(shù))也是實(shí)現(xiàn)模塊化的一種方案。

本文將介紹其中的六個:

IIFE:立即調(diào)用函數(shù)表達(dá)式AMD:異步模塊加載機(jī)制CMD:通用模塊定義UMD:統(tǒng)一模塊定義CommonJS:Node.js 采用該規(guī)范ES 模塊:JavaScript 內(nèi)置模塊系統(tǒng)2. IIFE

在 ECMAScript 6 之前,模塊并沒有被內(nèi)置到 JavaScript 中,因?yàn)?JavaScript 最初是為小型瀏覽器腳本設(shè)計(jì)的。這種模塊化的缺乏,導(dǎo)致在代碼的不同部分使用了共享全局變量。

比如,對于以下代碼:

var name = "JavaScript";var age = 20;

當(dāng)上面的代碼運(yùn)行時,name和age變量會被添加到全局對象中。因此,應(yīng)用中的所有 JavaScript 腳本都可以訪問全局變量name和age,這就很容易導(dǎo)致代碼錯誤,因?yàn)樵谄渌幌嚓P(guān)的單元中也可以訪問和修改這些全局變量。除此之外,向全局對象添加變量會使全局命名空間變得混亂并增加了命名沖突的機(jī)會。

所以,我們就需要一種封裝變量和函數(shù)的方法,并且只對外公開定義的接口。因此,為了實(shí)現(xiàn)模塊化并避免使用全局變量,可以使用如下方式來創(chuàng)建模塊:

(function () {    // 聲明私有變量和函數(shù)     return {        // 聲明公共變量和函數(shù)    }})();

上面的代碼就是一個返回對象的閉包,這就是我們常說的IIFE(Immediately Invoked Function Expression),即立即調(diào)用函數(shù)表達(dá)式。在該函數(shù)中,就創(chuàng)建了一個局部范圍。這樣就避免了使用全局變量(IIFE 是匿名函數(shù)),并且代碼單元被封裝和隔離。

可以這樣來使用 IIFE 作為一個模塊:

var module = (function(){  var age = 20;  var name = "JavaScript"    var fn1 = function(){    console.log(name, age)  };    var fn2 = function(a, b){    console.log(a + b)  };    return {    age,    fn1,    fn2,  };})();module.age;           // 20module.fn1();         // JavaScript 20module.fn2(128, 64);  // 192

在這段代碼中,module就是我們定義的一個模塊,它里面定義了兩個私有變量age和name,同時定義了兩個方法fn1和fn2,其中fn1中使用module中定義的私有變量,fn2接收外部傳入?yún)?shù)。最后,module 向外部暴露了age、fn1、fn2。這樣就形成了一個模塊。

當(dāng)試圖在module外部直接調(diào)用fn1時,就會報錯:

fn1(); // Uncaught ReferenceError: fn1 is not defined

當(dāng)試圖在module外部打印其內(nèi)部的私有變量name時,得到的結(jié)果是undefined:

module.name; // undefined

上面的 IIFE 的例子是遵循模塊模式的,具備其中的三部分,其中 age、name、fn1、fn2 就是模塊內(nèi)部的代碼實(shí)現(xiàn),返回的 age、fn1、fn2 就是導(dǎo)出的內(nèi)容,即接口。調(diào)用module方法和變量就是導(dǎo)入使用。

3. CommonJS(1)概念① 定義

CommonJS 是社區(qū)提出的一種 JavaScript 模塊化規(guī)范,它是為瀏覽器之外的 JavaScript 運(yùn)行環(huán)境提供的模塊規(guī)范,Node.js 就采用了這個規(guī)范。

注意:

瀏覽器不支持使用 CommonJS 規(guī)范;Node.js 不僅支持使用 CommonJS 來實(shí)現(xiàn)模塊,還支持最新的 ES 模塊。

CommonJS 規(guī)范加載模塊是同步的,只有加載完成才能繼續(xù)執(zhí)行后面的操作。不過由于 Node.js 主要運(yùn)行在服務(wù)端,而所需加載的模塊文件一般保存在本地硬盤,所以加載比較快,而無需考慮使用異步的方式。

② 語法

CommonJS 規(guī)范規(guī)定每個文件就是一個模塊,有獨(dú)立的作用域,對于其他模塊不可見,這樣就不會污染全局作用域。在 CommonJS 中,可以分別使用export和require來導(dǎo)出和導(dǎo)入模塊。在每個模塊內(nèi)部,都有一個module對象,表示當(dāng)前模塊。通過它來導(dǎo)出 API,它有以下屬性:

exports:模塊導(dǎo)出值。filename:模塊文件名,使用絕對路徑;id:模塊識別符,通常是使用絕對路徑的模塊文件名;loaded:布爾值,表示模塊是否已經(jīng)完成加載;parent:對象,表示調(diào)用該模塊的模塊;children:數(shù)組,表示該模塊要用到的其他模塊;③ 特點(diǎn)

CommonJS 規(guī)范具有以下特點(diǎn):

文件即模塊,文件內(nèi)所有代碼都運(yùn)行在獨(dú)立的作用域,因此不會污染全局空間;模塊可以被多次引用、加載。第一次被加載時,會被緩存,之后都從緩存中直接讀取結(jié)果。加載某個模塊,就是引入該模塊的module.exports屬性,該屬性輸出的是值拷貝,一旦這個值被輸出,模塊內(nèi)再發(fā)生變化不會影響到輸出的值。模塊加載順序按照代碼引入的順序。④ 優(yōu)缺點(diǎn)

CommonJS 的優(yōu)點(diǎn):

使用簡單很多工具系統(tǒng)和包都是使用 CommonJS 構(gòu)建的;在 Node.js 中使用,Node.js 是流行的 JavaScript 運(yùn)行時環(huán)境。

CommonJS 的缺點(diǎn)

可以在 JavaScript 文件中包含一個模塊;如果想在 Web 瀏覽器中使用它,則需要額外的工具;本質(zhì)上是同步的,在某些情況下不適合在 Web 瀏覽器中使用。(2)使用

在 CommonJS 中,可以通過 require 函數(shù)來導(dǎo)入模塊,它會讀取、執(zhí)行 JavaScript 文件,并返回該模塊的 exports 對象,該對象只有在模塊腳本運(yùn)行完才會生成。

① 模塊導(dǎo)出

可以通過以下兩種方式來導(dǎo)出模塊內(nèi)容:

module.exports.TestModule = function() {    console.log("exports");}exports.TestModule = function() {    console.log("exports");}

則合兩種方式的導(dǎo)出結(jié)果是一樣的,module.exports和exports的區(qū)別可以理解為:exports是module.exports的引用,如果在exports調(diào)用之前調(diào)用了exports=...,那么就無法再通過exports來導(dǎo)出模塊內(nèi)容,除非通過exports=module.exports重新設(shè)置exports的引用指向。

當(dāng)然,可以先定義函數(shù),再導(dǎo)出:

function testModule() {    console.log("exports");}module.exports = testModule;

這是僅導(dǎo)出一個函數(shù)的情況,使用時就是這樣的:

testModule = require("./MyModule");testModule();

如果是導(dǎo)出多個函數(shù),就可以這樣:

function testModule1() {    console.log("exports1");}function testModule2() {    console.log("exports2");}

導(dǎo)入多個函數(shù)并使用:

({testModule1, testModule2} = require("./MyModule"));testModule1();testModule2();
② 模塊導(dǎo)入

可以通過以下方式來導(dǎo)入模塊:

const module = require("./MyModule");

注意,如果require的路徑?jīng)]有后綴,會自動按照.js、.json和.node的順序進(jìn)行補(bǔ)齊查找。

③ 加載過程

在 CommonJS 中,require的加載過程如下:

優(yōu)先從緩存中加載;如果緩存中沒有,檢查是否是核心模塊,如果是直接加載;如果不是核心模塊,檢查是否是文件模塊,解析路徑,根據(jù)解析出的路徑定位文件,然后執(zhí)行并加載;如果以上都不是,沿當(dāng)前路徑向上逐級遞歸,直到根目錄的node_modules目錄。(3)示例

下面來看一個購物車的例子,主要功能是將商品添加到購物車,并計(jì)算購物車商品總價格:

// cart.jsvar items = [];function addItem (name, price)     item.push({    name: name,    price: price  });}exports.total = function () {    return items.reduce(function (a, b) {      return a + b.price;    }, 0);};exports.addItem = addItem;

這里通過兩種方式在 exports 對象上定義了兩個方法:addItem 和 total,分別用來添加購物車和計(jì)算總價。

下面在控制臺測試一下上面定義的模塊:

let cart = require("./cart");

這里使用相對路徑來導(dǎo)入 cart 模塊,打印 cart 模塊,結(jié)果如下:

cart // { total: [Function], addItem: [Function: addItem] }

向購物車添加一些商品,并計(jì)算當(dāng)前購物車商品的總價格:

cart.addItem("book", 60);cart.total()  // 60cart.addItem("pen", 6);cart.total()  // 66

這就是創(chuàng)建模塊的基本方法,我們可以創(chuàng)建一些方法,并且只公開希望其他文件使用的部分代碼。該部分成為 API,即應(yīng)用程序接口。

這里有一個問題,只有一個購物車,即只有一個模塊實(shí)例。下面來在控制臺執(zhí)行以下代碼:

second_cart = require("./cart");

那這時會創(chuàng)建一個新的購物車嗎?事實(shí)并非如此,打印當(dāng)前購物車的商品總金額,它仍然是66:

second_cart.total();  // 66

當(dāng)我們?創(chuàng)建多個實(shí)例時,就需要再模塊內(nèi)創(chuàng)建一個構(gòu)造函數(shù),下面來重寫cart.js文件:

// cart.jsfunction Cart () {    this.items = [];}Cart.prototype.addItem = function (name, price) {    this.items.push({        name: name,        price: price    });}Cart.prototype.total = function () {    return this.items.reduce(function(a, b) {        return a + b.price;    }, 0);};module.export = Cart;

現(xiàn)在,當(dāng)需要使用此模塊時,返回的是 Cart 構(gòu)造函數(shù),而不是具有 cart 函數(shù)作為一個屬性的對象。下面來導(dǎo)入這個模塊,并創(chuàng)建兩個購物車實(shí)例:

Cart = require("./second_cart");cart1 = new Cart();cart2 = new Cart();cart1.addItem("book", 50);cart1.total();   // 50cart2.total();   // 50
4. AMD(1)概念

CommonJS 的缺點(diǎn)之一是它是同步的,AMD 旨在通過規(guī)范中定義的 API 異步加載模塊及其依賴項(xiàng)來解決這個問題。AMD 全稱為 Asynchronous Module Definition,即異步模塊加載機(jī)制。它規(guī)定了如何定義模塊,如何對外輸出,如何引入依賴。

AMD規(guī)范重要特性就是異步加載。所謂異步加載,就是指同時并發(fā)加載所依賴的模塊,當(dāng)所有依賴模塊都加載完成之后,再執(zhí)行當(dāng)前模塊的回調(diào)函數(shù)。這種加載方式和瀏覽器環(huán)境的性能需求剛好吻合。

① 語法

AMD 規(guī)范定義了一個全局函數(shù) define,通過它就可以定義和引用模塊,它有 3 個參數(shù):

define(id?, dependencies?, factory);

其包含三個參數(shù):

id:可選,指模塊路徑。如果沒有提供該參數(shù),模塊名稱默認(rèn)為模塊加載器請求的指定腳本的路徑。dependencies:可選,指模塊數(shù)組。它定義了所依賴的模塊。依賴模塊必須根據(jù)模塊的工廠函數(shù)優(yōu)先級執(zhí)行,并且執(zhí)行的結(jié)果應(yīng)該按照依賴數(shù)組中的位置順序以參數(shù)的形式傳入工廠函數(shù)中。factory:為模塊初始化要執(zhí)行的函數(shù)或?qū)ο?。如果是函?shù),那么該函數(shù)是單例模式,只會被執(zhí)行一次;如果是對象,此對象應(yīng)該為模塊的輸出值。

除此之外,要想使用此模塊,就需要使用規(guī)范中定義的 require 函數(shù):

require(dependencies?, callback);

其包含兩個參數(shù):

dependencies:依賴項(xiàng)數(shù)組;callback:加載模塊時執(zhí)行的回調(diào)函數(shù)。

有關(guān) AMD API 的更詳細(xì)說明,可以查看 GitHub 上的 AMD API 規(guī)范:https://github.com/amdjs/amdjs-api/blob/master/AMD.md。

② 兼容性

該規(guī)范的瀏覽器兼容性如下:

③ 優(yōu)缺點(diǎn)

AMD 的優(yōu)點(diǎn):

異步加載導(dǎo)致更好的啟動時間;能夠?qū)⒛K拆分為多個文件;支持構(gòu)造函數(shù);無需額外工具即可在瀏覽器中工作。

AMD 的缺點(diǎn):

語法很復(fù)雜,學(xué)習(xí)成本高;需要一個像 RequireJS 這樣的加載器庫來使用 AMD。(2)使用

當(dāng)然,上面只是 AMD 規(guī)范的理論,要想理解這個理論在代碼中是如何工作的,就需要來看看 AMD 的實(shí)際實(shí)現(xiàn)。RequireJS 就是 AMD 規(guī)范的一種實(shí)現(xiàn),它被描述為“JavaScript 文件和模塊加載器”。下面就來看看 RequireJS 是如何使用的。

① 引入RequireJS

可以通過 npm 來安裝 RequireJS:

npm i requirejs

也可以在 html 文件引入require.js文件:

<script data-main="js/config" src="js/require.js"></script>

這里script標(biāo)簽有兩個屬性:

data-main="js/config":這是 RequireJS 的入口,也是配置它的地方;src="js/require.js":加載腳本的正常方式,會加載require.js文件。

在script標(biāo)簽下添加以下代碼來初始化 RequireJS:

<script>    require(["config"], function() {        //...    })</script>

當(dāng)頁面加載完配置文件之后,require()中的代碼就會運(yùn)行。這個script標(biāo)簽是一個異步調(diào)用,這意味著當(dāng) RequireJS 通過src="js/require.js加載時,它將異步加載data-main屬性中指定的配置文件。因此,該標(biāo)簽下的任何 JavaScript 代碼都可以在 RequireJS 獲取時執(zhí)行配置文件。

那 AMD 中的require()和 CommonJS 中的require()有什么區(qū)別呢?

AMDrequire() 接受一個依賴數(shù)組和一個回調(diào)函數(shù),CommonJSrequire()接受一個模塊 ID;AMDrequire()是異步的,而 CommonJSrequire()是同步的。② 定義 AMD 模塊

下面是 AMD 中的一個基本模塊定義:

define(["dependency1", "dependency2"], function() {  // 模塊內(nèi)容});

這個模塊定義清楚地顯示了其包含兩個依賴項(xiàng)和一個函數(shù)。

下面來定義一個名為addition.js的文件,其包含一個執(zhí)行加法操作的函數(shù),但是沒有依賴項(xiàng):

// addition.jsdefine(function() {    return function(a, b) {        alert(a + b);    }});

再來定義一個名為calculator.js的文件:

define(["addition"], function(addition) {    addition(7, 9);});

當(dāng) RequireJS 看到上面的代碼塊時,它會去尋找依賴項(xiàng),并通過將它們作為參數(shù)傳遞給函數(shù)來自動將其注入到模塊中。

RequireJS 會自動為addition.js和calculator.js文件創(chuàng)建一個<script>標(biāo)簽,并將其放在HTML元素中,等待它們加載,然后運(yùn)行函數(shù),這類似于require()的行為。

下面來更新一下index.html文件:

// index.htmlrequire(["config"], function() {    require(["calculator"]);});

當(dāng)瀏覽器加載index.html文件時,RequireJS 會嘗試查找calculator.js模塊,但是沒有找到,所以瀏覽器也不會有任何反應(yīng)。那該如何解決這個問題呢?我們必須提供配置文件來告訴 RequireJS 在哪里可以找到calculator.js(和其他模塊),因?yàn)樗且玫娜肟凇?/p>

下面是配置文件的基本結(jié)構(gòu):

requirejs.config({    baseURL: "string",    paths: {},    shim: {},});

這里有三個屬性值:

baseURL:告訴 RequireJS 在哪里可以找到模塊;path:這些是與 define() 一起使用的模塊的名稱。 在路徑中,可以使用文件的 CDN,這時 RequireJS 將嘗試在本地可用的模塊之前加載模塊的 CDN 版本;shim:允許加載未編寫為 AMD 模塊的庫,并允許以正確的順序加載它們

我們的配置文件如下:

requirejs.config({    baseURL: "js",    paths: {        // 這種情況下,模塊位于 customScripts 文件中        addition: "customScripts/addition",        calculator: "customScripts/calculator",    },});

配置完成之后,重新加載瀏覽器,就會收到瀏覽器的彈窗:

這就是在 AMD 中使用 RequireJS 定義模塊的方法之一。我們還可以通過指定其路徑名來定義模塊,該路徑名是模塊文件在項(xiàng)目目錄中的位置。 下面給出一個例子:

define("path/to/module", function() {    // 模塊內(nèi)容})

當(dāng)然,RequireJS 并不鼓勵這種方法,因?yàn)楫?dāng)我們將模塊移動到項(xiàng)目中的另一個位置時,就需要手動更改模塊中的路徑名。

在使用 AMD 定義模塊時需要注意:

在依賴項(xiàng)數(shù)組中列出的任何內(nèi)容都必須與工廠函數(shù)中的分配相匹配;盡量不要將異步代碼與同步代碼混用。當(dāng)在 index.html 上編寫其他 JavaScript 代碼時就是這種情況。5. CMD

CMD 全稱為 Common Module Definition,即通用模塊定義。CMD 規(guī)范整合了 CommonJS 和 AMD 規(guī)范的特點(diǎn)。sea.js 是 CMD 規(guī)范的一個實(shí)現(xiàn) 。

CMD 定義模塊也是通過一個全局函數(shù)define來實(shí)現(xiàn)的,但只有一個參數(shù),該參數(shù)既可以是函數(shù)也可以是對象:

define(factory);

如果這個參數(shù)是對象,那么模塊導(dǎo)出的就是對象;如果這個參數(shù)為函數(shù),那么這個函數(shù)會被傳入 3 個參數(shù):

define(function(require, exports, module) {  //...});

這三個參數(shù)分別如下: (1)require:一個函數(shù),通過調(diào)用它可以引用其他模塊,也可以調(diào)用require.async函數(shù)來異步調(diào)用模塊; (2)exports:一個對象,當(dāng)定義模塊的時候,需要通過向參數(shù)exports添加屬性來導(dǎo)出模塊 API; (3)module是一個對象,它包含 3 個屬性:

uri:模塊完整的 URI 路徑;dependencies:模塊依賴;exports:模塊需要被導(dǎo)出的 API,作用同第二個參數(shù)exports。

下面來看一個例子,定義一個increment模塊,引用math模塊的add函數(shù),經(jīng)過封裝后導(dǎo)出成increment函數(shù):

define(function(require, exports, module) {  var add = require("math").add;  exports.increment = function(val) {    return add(val, 1);  };  module.id = "increment";});

CMD 最大的特點(diǎn)就是懶加載,不需要在定義模塊的時候聲明依賴,可以在模塊執(zhí)行時動態(tài)加載依賴。除此之外,CMD 同時支持同步加載模塊和異步加載模塊。

AMD 和 CMD 的兩個主要區(qū)別如下:

AMD 需要異步加載模塊,而 CMD 在加載模塊時,可以同步加載(require),也可以異步加載(require.async)。CMD 遵循依賴就近原則,AMD 遵循依賴前置原則。也就是說,在 AMD 中,需要把模塊所需要的依賴都提前在依賴數(shù)組中聲明。而在 CMD 中,只需要在具體代碼邏輯內(nèi),使用依賴前,把依賴的模塊require進(jìn)來。6. UMD

UMD 全程為 Universal Module Definition,即統(tǒng)一模塊定義。其實(shí) UMD 并不是一個模塊管理規(guī)范,而是帶有前后端同構(gòu)思想的模塊封裝工具。

UMD 是一組同時支持 AMD 和 CommonJS 的模式,它旨在使代碼無論執(zhí)行代碼的環(huán)境如何都能正常工作,通過 UMD 可以在合適的環(huán)境選擇對應(yīng)的模塊規(guī)范。比如在 Node.js 環(huán)境中采用 CommonJS 模塊管理,在瀏覽器環(huán)境且支持 AMD 的情況下采用 AMD 模塊,否則導(dǎo)出為全局函數(shù)。

一個UMD模塊由兩部分組成:

**立即調(diào)用函數(shù)表達(dá)式 (IIFE)**:它會檢查使用模塊的環(huán)境。其有兩個參數(shù):root和factory。root是對全局范圍的 this 引用,而factory是定義模塊的函數(shù)。匿名函數(shù):創(chuàng)建模塊,此匿名函數(shù)被傳遞任意數(shù)量的參數(shù)以指定模塊的依賴關(guān)系。

UMD 的代碼實(shí)現(xiàn)如下:

(function (root, factory) {  if (typeof define === "function" && define.amd) {    define([], factory);  } else if (typeof exports === "object") {    module.exports,    module.exports = factory();  } else {    root.returnExports = factory();  }}(this, function () {  // 模塊內(nèi)容定義  return {};}));

它的執(zhí)行過程如下:

先判斷是否支持 Node.js 模塊格式(exports 是否存在),存在則使用 Node.js 模塊格式;再判斷是否支持 AMD(define 是否存在),存在則使用 AMD 方式加載模塊;若兩個都不存在,則將模塊公開到全局(Window 或 Global)。

UMD的特點(diǎn)如下:① UMD 的優(yōu)點(diǎn):

小而簡潔;適用于服務(wù)器端和客戶端。

② UMD 的缺點(diǎn):

不容易正確配置。7. ES 模塊(1)概念

通過上面的例子,你可能會發(fā)現(xiàn),使用 UMD、AMD、CMD 的代碼會變得難以編寫和理解。于是在 2015 年,負(fù)責(zé) ECMAScript 規(guī)范的 TC39 委員會將模塊添加為 JavaScript 的內(nèi)置功能,這些模塊稱為 ECMAScript模塊,簡稱 ES 模塊。

模塊和經(jīng)典 JavaScript 腳本略有不同:

模塊默認(rèn)啟用嚴(yán)格模式,比如分配給未聲明的變量會報錯:
<script type="module">  a = 5; </script>
模塊有一個詞法頂級作用域。 這意味著,例如,運(yùn)行 var foo = 42; 在模塊內(nèi)不會創(chuàng)建名為 foo 的全局變量,可通過瀏覽器中的 window.foo 訪問,盡管在經(jīng)典JavaScript腳本中會出現(xiàn)這種情況;
<script type="module">  let person = "Alok";</script><script type="module">   alert(person);{/* Error: person is not defined */}</script>
模塊中的 this 并不引用全局 this,而是 undefined。 (如果需要訪問全局 this,可以使用 globalThis);
<script>  alert(this); {/* 全局對象 */}</script><script type="module">  alert(this); {/* undefined */}</script>
新的靜態(tài)導(dǎo)入和導(dǎo)出語法僅在模塊中可用,并不適用于經(jīng)典腳本。頂層 await 在模塊中可用,但在經(jīng)典 JavaScript 腳本中不可用;await 不能在模塊中的任何地方用作變量名,經(jīng)典腳本中的變量可以在異步函數(shù)之外命名為 await;JavaScript 會提升 import 語句。因此,可以在模塊中的任何位置定義它們。

CommonJS 和 AMD 都是在運(yùn)行時確定依賴關(guān)系,即運(yùn)行時加載,CommonJS 加載的是拷貝。而 ES 模塊是在編譯時就確定依賴關(guān)系,所有加載的其實(shí)都是引用,這樣做的好處是可以執(zhí)行靜態(tài)分析和類型檢查。

(2)語法① 導(dǎo)出

當(dāng)導(dǎo)出模塊代碼時,需要在其前面添加 export 關(guān)鍵詞。導(dǎo)出內(nèi)容可以是變量、函數(shù)或類。任何未導(dǎo)出的代碼都是模塊私有的,無法在該模塊之被外訪問。ES 模塊支持兩種類型的導(dǎo)出:

命名導(dǎo)出:
export const first = "JavaScript";export function func() {    return true;}

當(dāng)然,我們也可以先定義需要導(dǎo)出的變量/函數(shù),最后統(tǒng)一導(dǎo)出這些變量/函數(shù):

const first = "JavaScript";const second = "TypeScript";function func() {    return true;}export {first, second, func};
默認(rèn)導(dǎo)出:
function func() {    return true;}export default func;

當(dāng)然,也可以直接默認(rèn)導(dǎo)出:

export default function func() {    return true;}

默認(rèn)導(dǎo)出可以省略變量/函數(shù)/類名,在導(dǎo)入時可以為其指定任意名稱:

// 導(dǎo)出export default function () {  console.log("foo");}// 導(dǎo)入import customName from "./module";

注意:導(dǎo)入默認(rèn)模塊時不需要大括號,導(dǎo)出默認(rèn)的變量或方法可以有名字,但是對外是無效的。export default在一個模塊文件中只能使用一次。

可以使用 as 關(guān)鍵字來重命名需要暴露出的變量或方法,經(jīng)過重命名后同一變量可以多次暴露出去:

const first = "test";export {first as second};
② 導(dǎo)入

使用命名導(dǎo)出的模塊,可以通過以下方式來導(dǎo)入:

import {first, second, func} from "./module";

使用默認(rèn)導(dǎo)出的模塊,可以通過以下方式來引入,導(dǎo)入名稱可以自定義,無論導(dǎo)出的名稱是什么:

import customName from "./module.js";

導(dǎo)入模塊位置可以是相對路徑也可以是絕對路徑,.js擴(kuò)展名是可以省略的,如果不帶路徑而只是模塊名,則需要通過配置文件告訴引擎查找的位置:

import {firstName, lastName} from "./module";

可以使用 as 關(guān)鍵字來將導(dǎo)入的變量/函數(shù)重命名:

import { fn as fn1 } from "./profile";

在 ES 模塊中,默認(rèn)導(dǎo)入和命名導(dǎo)入是可以同時使用的,比如在 React 組件中:

import React, {usestate, useEffect} from "react";const Comp = () => { return ... }export default Comp;

可以使用 as 關(guān)鍵字來加載整個模塊,用于從另一個模塊中導(dǎo)入所有命名導(dǎo)出,會忽略默認(rèn)導(dǎo)出:

import * as circle from "./circle";console.log("圓面積:" + circle.area(4));console.log("圓周長:" + circle.circumference(14));
③ 動態(tài)導(dǎo)入

上面我們介紹的都是靜態(tài)導(dǎo)入,使用靜態(tài) import 時,整個模塊需要先下載并執(zhí)行,然后主代碼才能執(zhí)行。有時我們不想預(yù)先加載模塊,而是按需加載,僅在需要時才加載。這可以提高初始加載時的性能,動態(tài) import 使這成為可能:

<script type="module">  (async () => {    const moduleSpecifier = "./lib.mjs";    const {repeat, shout} = await import(moduleSpecifier);    repeat("hello");    // → "hello hello"    shout("Dynamic import in action");    // → "DYNAMIC IMPORT IN ACTION!"  })();</script>

與靜態(tài)導(dǎo)入不同,動態(tài)導(dǎo)入可以在常規(guī)腳本中使用。

④ 其他用法

可以使用以下方式來先導(dǎo)入后導(dǎo)出模塊內(nèi)容:

export { foo, bar } from "./module";

上面的代碼就等同于:

import { foo, bar } from "./module";export { foo, boo};

另一個與模塊相關(guān)的新功能是import.meta,它是一個給 JavaScript 模塊暴露特定上下文的元數(shù)據(jù)屬性的對象。它包含了這個模塊的信息,比如說這個模塊的 URL。

默認(rèn)情況下,圖像是相對于 HTML 文檔中的當(dāng)前 URL 加載的。import.meta.url可以改為加載相對于當(dāng)前模塊的圖像:

function loadThumbnail(relativePath) {  const url = new URL(relativePath, import.meta.url);  const image = new Image();  image.src = url;  return image;}const thumbnail = loadThumbnail("../img/thumbnail.png");container.append(thumbnail);
(3)在瀏覽器使用

目前主流瀏覽器都支持 ES 模塊:

如果想在瀏覽器中使用原生 ES 模塊方案,只需要在 script 標(biāo)簽上添加type="module"屬性。通過該屬性,瀏覽器知道這個文件是以模塊化的方式運(yùn)行的。而對于不支持的瀏覽器,需要通過nomodule屬性來指定某腳本為 fallback 方案:

<script type="module">  import module1 from "./module1"</script><script nomodule src="fallback.js"></script>

支持type="module"的瀏覽器會忽略帶有nomodule屬性的腳本。使用type="module"的另一個作用就是進(jìn)行 ES Next 兼容性的嗅探。因?yàn)橹С?ES 模塊化的瀏覽器,都支持 ES Promise 等特性。

由于默認(rèn)情況下模塊是延遲的,因此可能還希望以延遲方式加載 nomodule 腳本:

<script nomodule defer src="fallback.js"></script>
(4)在 Node.js 使用

上面提到,Node.js 使用的是 CommonJS 模塊規(guī)范,它也是支持 ES 模塊的。在 Node.js 13 之前,ES 模塊是一項(xiàng)實(shí)驗(yàn)性技術(shù),因此,可以通過使用.mjs擴(kuò)展名保存模塊并通過標(biāo)志訪問它來使用模塊。

從 Node.js 13 開始,可以通過以下兩種方式使用模塊:

使用.mjs擴(kuò)展名保存模塊;在最近的文件夾中創(chuàng)建一個type="module"的package.json文件。

那如何在小于等于 12 版本的 Node.js 中使用 ES 模塊呢?可以在執(zhí)行腳本啟動時加上--experimental-modules,不過這一用法要求相應(yīng)的文件后綴名必須為.mjs:

node --experimental-modules module1.mjsimport module1 from "./module1.mjs"module1

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 640@qq.com  備案號: 京ICP備2022022245號-21
快色视频在线观看免费| 欧美日韩不卡视频合集| 欧美日本在线免费视频| 黑鸡巴肏少妇逼视频| 核xp工厂精品久久亚洲| 亚洲熟妇丰满多毛xxxx网站| 玖辛奈18禁同人污本子| av在线男人的天堂亚洲| 欧美日韩精品aaa| 日韩人妻精品久久久久| 91中文字幕视频网站| 小妹妹爱大棒棒免费观看视频| 东京热男人的天堂视频| 国产高清自拍偷拍在线| 天天操天天干天天舔天天| 亚洲国产电影的一区| 日韩成人免费观看电影| 一区二区三区内射美女| 亚洲乱熟女一区二区三区影片| 亚洲av网站一区二区三区| julia人妻av一区二区三区| 日本少妇丰满大bbb的小乳沟| 亚洲资源在线免费观看| 乱子伦国产一区二区三区| 黄色av日韩在线观看| 久久无码高清免费视频| 色欲天天媓色媓香视频综合网| 欧美色区国产日韩亚洲区| 国产一级一国产一级毛片| 久久久久久久岛国免费观看| 2021国产在线视频| 男生用大肌巴操美女骚穴| 五十岁熟女高潮喷水| 国产精品午夜无码AV体验区| 美女把逼扒开让男人桶| 岳的大肥屁熟妇五十路| 国内精品一区二区2021在线| 国产精品亚洲精品亚洲| 免费24小时人妻视频| 亚洲精品激情视频在线观看| 两个人在一起靠逼啊啊啊| 久久国产精品久精国产爱| 久久无码高清免费视频| 美女精品久久久久久久久| 91大神在线免费观看视频| 亚洲精品色图1234| 五月的婷婷综合视频| 加勒比不卡在线视频| 午夜一区二区三区视频在线观看| 92午夜免费福利视频www| 亚洲国产精品自拍偷拍视频在线| 中文字字幕在线精品乱码| 成人资源中文在线观看| 亚洲唯美激情综合四射| 加勒比不卡在线视频| 国产激情免费在线视频| 天天夜夜久久精品综合| 青青在线免费手机播放视频| 97超碰人人爽人人做| 日韩欧美一区二区三区免费看 | 69久久夜色精品国产69乱电影 | 亚洲字幕一区二区夜色av| 九热精品视频在线观看| 欧美亚洲愉拍一区二区三区| 人妻激情综合久久久久蜜桃| 中文字幕日韩人妻在线三区| 91中文字幕视频网站| 欧美日韩精品aaa| 911美女片黄在线观看| 交换的一天中文字幕在线视频| 区一区二区三免费观看视频| 日本午夜福利免费在线播放| 成人人妻h在线观看| 黑人和日本人av一区二区| 午夜在线观看一级毛| 中文字幕一区二区人妻视频| 亚洲午夜精品视频节目| 九九九九九久久久国产| 日本清纯中文字幕版| 天天操天天舔天天爽| 中文字幕丰满子伦无码专区| 182tv精品免费在线观看| 在线有码人妻自拍视频| 精品不卡一区二区三区| 夜夜人人干人人爱人人操| 美女欧美视频在线观看免费| 99精品久久一区二区| 开心五月综合激情婷婷| 人妻少妇精品二三区| av一区二区三区蜜桃| 91麻豆精品国产在线| 日本免费人爱做视频在线观看不卡| 中文字幕人妻一区二区视频系列| 色老头一区二区三区四区五区| 一区二区三区资源视频| 91进入蜜桃臀在线播放| 92在线播放观看视频| 亚洲a区在线免费观看| 国产毛片特级Av片| 综合激情网,激情五月| av福利免费体验观看| 午夜国产一区二区三区| 天天日天天玩天天摸| 中文字幕精品人妻久久久久| 亚洲精品1卡2卡3卡| 亚洲高清免费在线观看视频| 91精品91久久久久| 日本丰满熟妇浓密多毛| 国产一区二区三区四区精| 一区二区三区免费版在线| 国产精品内射婷婷一级| 99热这里只有精品免费播放| 欧洲精品在线免费观看| 日韩三级黄色大片在线观看| 男插女视频大全免费| 男人的天堂在线2025| 午夜情色一区二区三区| 亚洲免费午夜污福利| 久草久热这里只有精品| 欧美性感美女热舞视频| 亚洲中文字幕最新地址| 青青在线视频看看| 黄色片黄色片黄色片黄色片黄色| 亚洲第一页欧美第一页| 国产91九色视频在线观看| 丝袜美女诱惑佐佐三上| 亚洲综合在线视频在线播放| 伊人综合在线视频免费观看| 乱子伦国产一区二区三区| 最新国产精品久久精品app| 91麻豆精品国产在线| 最新日韩中文字幕啪啪啪| 最新激情中文字幕视频| 不用付费特黄特色亚洲特级黄色片| 精产国品一二三产品区别97| 蜜桃臀av在线一区二区| 青青操久久综合激情| 啊不行啊操逼好爽大鸡吧视频| 人人妻人人澡人人爽97| 国产自拍偷拍在线精品| 日韩激情文学在线视频| 欧美日韩福利视频网| 91大神福利视频网| 欧美丝袜亚洲国产日韩| 亚洲av手机免费在线| 性感美女极品18禁网站在线| 亚洲综合一区二区三区四区| www国产亚洲精品久久久| 91性高湖久久久久久久久久| 最新福利二区三区视频| 婷婷色综合五月天视频| 在线观看中文字幕精品av| 好看的日本中文字幕在线观看二区 | 麻豆午夜激情在线观看| 日韩一级视频一区二区三区| 亚洲黄色免费在线观看网站| 午夜精品久久久久久久精品乱码| 在线看日韩av不卡| 亚洲精品中文字幕手机在线免费看| 豆豆专区操逼性视频在线| 98热视频精品在线观看| 老鸭窝在线毛片观看免费播放| 无人区一码二码三码区别在哪| 日本免费人爱做视频在线观看不卡| 欧美日韩成人高清中文网| 一级毛片特级毛片免费的| 不卡高清一区二区三区| 天天爽天天操天天插| 亚洲欧美韩国日本一区二区| 超peng视频在线免费播放97| 天天色 天天操 天天好逼| 美国十次了亚洲天堂网国产| 99色在线观看免费观看| 69国产精品成人aaaaa片| 中出小骚货在线观看| 亚洲 综合 欧美 一区| 夜夜骚av一二三区| 桃色成人开心激情网| 天天看天天爱天天日| 91青青青国产免费高清| 精产国品一二三产品区别97| 可以直接看av网站| 亚洲国内精品久久久久久久| 狠狠操深爱婷婷综合一区| 亚洲日本欧美韩国另类综合| 岛国av成人午夜高清| 91系列视频在线播放| 99女福利女女视频在线播放| 女人的天堂av在线网| 中文字幕欧美一区二区视频| 男插女视频大全免费| 天天摸天天干夜夜操| 最新国产精品综合网高清| 黄很色很在线免费视频网站| 杜达雄啪啪毛片视频| 婷婷一区二区三区五月丁| 亚洲精品9999蜜桃| aaaa级少妇高潮在线观看| 亚洲av 综合av| 天天操天天射天天操天天日| 新香蕉视频香蕉视频2| 欧美丝袜亚洲国产日韩| 丰满少妇高潮喷水视频| 人妻激情综合久久久久蜜桃| 精品不卡一区二区三区| 亚洲色视频在线播放网站| 欧美一级特黄大片做受99| 欧美精品999不卡| 97超碰人人爽人人做| 97视频538在线观看| 91佛爷视频在线观看| 不卡高清一区二区三区| 手机看片1024精品国产| 亚洲av日韩久久网站| 久久久西西gogo日本美女人体| 人妻色综合aaaaaa网| 成人免费视频现网站99在线观看| 自拍偷拍 国产激情| 福利小视频免费在线| 黄色av 在线观看| 韩日一级人添人人澡人人妻精品| 精品人妻人人做人人爽| 色999日韩偷自拍拍免费| 放荡人妻极品少妇全集| 特级aaaaa黄色片| 有码一区二区三区四区五区| 亚洲自拍偷拍av在线| 免费成人av麻豆| 快使劲弄我视频在线播放| 狂操鸡巴小骚逼视频免费观看| 欧美最新一区二区三区| 最近在线中文字幕免费| 国产美女高潮精品视频| 久久中文字幕av一区二区| 91进入蜜桃臀在线播放| 91进入蜜桃臀在线播放| 亚洲成人动漫av在线| 夜色17s精品人妻熟女av| 亚洲国产精品自产拍在线观看| 98热视频精品在线观看| 国产激情免费在线视频 | 东京热日本一区二区三区| 成人免费电影二区三区| 天天操天天干天天舔天天| 国产漂亮白嫩美女在线图片| 日本亚洲午夜福利一区二区三区| 啪啪啪网站免费看视频| 精品欧美乱码久久久| 国产精品中文字幕丝袜| 少妇被粗大的猛进69视频| 亚洲一区二区三区四区入口| 超级黄肉动漫在线观看 | 夜色17s精品人妻熟女av| av激情四射五月婷婷| 99久久精品视频16| 亚洲欧美日韩中文视频| 国产探花自拍亚洲av| 天天摸天天干夜夜操| 人妻激情综合久久久久蜜桃 | 午夜3p福利视频合集| 高清国产美女a一级毛片| 亚洲国产中文字幕在线看| 精品视频一区二区三区◇| 91精品国产91久久久久久密臀| 嗯~嗯~啊啊啊~高潮了软件| 天天摸天天干夜夜操| 亚洲欧美综合另类最新| 久久国产半精品99精品国产| 中文在线字幕免费观看日韩视频| 人妻色综合aaaaaa网| 东京热日韩av影片| 久久午夜免费鲁丝片| 中文字幕在线免费观看人妻| 亚洲黄色免费在线观看网站| 亚洲蜜桃久久久久久| 91在线九色porny| 手机看电影一区二区三区| 18岁禁一二三区免费体验| 人妻超清中文字幕在线乱码| 人妻少妇视频系列视频在线| 亚洲午夜国产末满十八岁勿进网站| 精品免费一区二区三区四区视频| 青娱乐这里只有精品| 国产精品剧情av在线播放| 熟妇人妻av无码中文字幕| av天堂hezyo| 久久国产半精品99精品国产| www一区二区91| 欧美熟女xx00视频| 欧美日韩一区二区三区成人影院| 国产激情免费在线视频| 干逼又爽又黄又免费的视频| 18在线观看免费观看| 国产自拍偷拍在线精品| 亚洲最大先锋资源采集站| 日本老熟老熟妇七十路| 亚洲制服丝袜在线看| 欧美老熟妇xxoo老妇| 女女抠逼白虎白丝袜| 色狠狠色综合久久久绯色| 欧美亚洲精品色图网站| 99久久精品视频16| 天天看片天天摸天天操| xxoo福利视频导航| 综合激情网,激情五月| 日韩久久不卡免费视频| 91精品国产综合99| 天天干天天日天天弄| 亚洲成人偷拍自拍在线| 日本四十路人妻熟女| 国产一区二区三区四区精| 欧美成人屋影院在线视频观看| 91香蕉国产亚洲一二三区| 五月婷婷伊人久久中文字幕| 亚洲乱码av一区二区蜜桃av| 久草久热这里只有精品| 国产人妻熟女ⅹxx丝袜| 欧美日韩在线观看免费播放| 9999久久久久老熟妇二区| 黄色av网址在线播放| 熟女阿高潮合集一区二区| 国产精品网站的黄色| 鸡巴在里面福利视频在线观看| 日韩一级视频一区二区三区| 欧美日韩亚洲国产视频二区| 久久人人爽人人爽人人av东京热| 看女人大BB群伦交| 精品久久久久久久久久久久久| 日本欧美国产在线一区| 鸡巴插进美女的嫩小穴视频| 丰满放荡熟妇在线播放| 午夜国产免费视频亚洲| 午夜宅男电影av网站| 天天夜夜久久精品综合| 一区二区三区国产在线成人av| 天天干天天操天天要| 鸡巴插进美女的嫩小穴视频| 亚洲自拍偷拍av在线| 9999久久久久老熟妇二区| 麻豆国产91制片厂| 男人av一区二区三区| 麻豆出品视频在线观看| 97成人老师在线视频| 天天看片天天摸天天操| 蜜臀久久精品久久久久久av| 天天日 天天舔 天天射| 成人精品动漫一区二区| 中文字幕人妻一区色偷偷久久| 91超碰国产在线观看| a级黄片免费观看| 久久99热精品免费观看视| 亚洲另类激情视频在线看| 久久久西西gogo日本美女人体| 日本五六十路熟女视频| 日韩成人精品久久久免费看| 国产精品国产三级在线高清观看 | 自拍偷拍视频亚洲一区| 欧美日韩综合精品无人区| 精品视频一区二区三区◇| 欧美啪啪一区二区三区| 精久久久久久久久久久久| 天天日天天干天天日天天干天天| 一区二区三区av免费天天看| 久草久热这里只有精品| 在线观看中文字幕少妇av| 日日夜夜免费视频精品| 中文字幕免费啪啪啪| 美女av色播在线播放| 黑人巨大精品一区二区在线| 搞乱在线在线观看视频| 少妇熟女天堂网av| 欧美一级特黄大片做受99| 亚洲人人爽人人澡起碰av| 欧美熟女xx00视频| 精品不卡一区二区三区| 插鸡视频免费网站在线播放| 色视频在线播放免费观看| 美女福利网站在线播放| 丰满少妇人妻一区二区三区蜜桃| 日韩无码国产一区二区| 成人资源中文在线观看| 亚洲一区亚洲二区成人福利| 天天操天天干天天谢| 日本丰满熟妇浓密多毛| 国产91免费在线观看| 日本少妇丰满大bbb的小乳沟| 一区二区三区资源视频| 在线观看中文字幕视频成人| 天天碰天天摸天天搞| 亚洲av毛片一区二区三区网| 51vv精品视频在线观看| 欧美日韩一区二区三区成人影院| 欧美vs亚洲vs日韩| 国产91精品福利系列| 男生和女生羞羞91在线看| 亚洲韩精品一区二区三区 | 一区二区三区观看在线| 性感美女人妻久久久| 亚洲天堂av最新在线| 国产亚洲综合5388| 极品内射老女人操逼视频| av天堂a亚洲va天堂va里番| 日本少妇丰满大bbb的小乳沟| 亚洲综合在线视频在线播放| 美女欧美视频在线观看免费| 4日日夜夜精品视频免费| 高潮喷水在线视频观看| 天天看天天爱天天日| 三级欧美日韩一区二区三区| 日韩A级毛片免费视频| 日韩人妻中文字幕区| 午夜情色一区二区三区| 国语对白性爱三级片免费看| 日韩加勒比精品在线看| 在线 激情 亚洲 视频| 天天天天天天天天日日日| 精品国产污污污污免费观看| 国产极品气质外围av| 国产成人情侣av在线| 正在播放麻豆精品一区二区| 亚洲熟女乱色一区二区三区视频| 麻豆出品视频在线观看| 综合久久伊人久久88| 欧美亚洲国产一区二区| 一级毛片特级毛片免费的| 日本高清在线观看不卡视频| 亚洲欧美小说中文字幕| 日韩人妻中文字幕区| 亚洲乱熟女一区二区三区影片| 精品国产污污污免费入口| 先锋人妻啪啪中文字幕| 成人av中文字幕在线看| 色网站在线观看免费| 欧洲精品在线免费观看| 国产自拍偷拍视频在线免费观看| 欧美日韩亚洲tv不卡久久| 我爱搞在线观看视频| 亚洲国产日韩a在线欧美| 欧美极品少妇高潮喷水| 18岁禁一二三区免费体验| 啊~插得好快别揉我胸了视频| 91久久久精品成人国产| 手机看片1024精品国产| 人妻免费视频黄片在线视频| 色欲AV蜜桃一区二区三| 男插女视频大全免费| 日本电影一级人妻在线播放四区 | 欧美日本在线免费视频| 少妇被中出一区二区| 蜜乳视频一区二区三区| 天天干天天操天天要| 东京热男人的天堂视频| 最近最新欧美日韩精品| 国产 亚洲 欧美 自拍| 一区二区欧美 国产日韩| 男女69视频在线观看免费| 日本少妇精品免费视频| 熟女俱乐部jukujoclub| 99精品久久精品一区二区| 黑川堇人妻88av| 亚洲一区二区精品在线播放| 五月天天堂视频在线| 最新日韩av电影在线播放| avtt中文字幕手机版| 国产av在线免费视频| 91超精品碰国产在线观看| 黄在线看片免费人成视频| 亚洲国内精品久久久久久久| 久久久精品人妻无码专区不卡| 夫亡人妻被强干中文字幕| 69国产在线视频网站| 夜夜躁av麻豆男| 亚洲第一中文字幕成人| 亚洲一级熟妇丰满的女人| 蜜桃tv一区二区三区| 5d蜜桃臀女无痕裸感| 91九色国产在线视频| 国产激情一区二区视频| 特级aaaaa黄色片| 91国产精品乱码久久久久久| 天天日 天天舔 天天射| 美女激情久久久久久久| 国产福利三级在线观看| 91精品一区一区三区| 夜夜骚av一二三区| 操死你美女在线视频| 亚洲天堂男人的天堂| 色视频在线播放免费观看| 午夜久久久久欠久久久久| 亚洲中文字幕在线av| 中文字幕人妻精品精品| 美国十次了亚洲天堂网国产| 青青青国产精品视频| 午夜美女福利视频在线| 国产 亚洲 欧美 自拍| 国长拍拍视频免费孕妇| 不卡一区二区视频在线| 小妹妹爱大棒棒免费观看视频| 国产美女高潮精品视频| 天天搞天天操天天干| 91福利高清在线播放| 日本成年视频在线免费观看| 午夜美女福利视频在线| 蜜乳av中文字幕一区二区| 亚洲第一成年偷拍视频| 天天操天天日天天插天天舔| 亚洲欧美国产一本综合首页| 99久久国语露脸国产精品| yy4080黄色片| 亭亭五月天在线观看| 60路70路日本熟妇| 国产清纯一区二区在线观看| 福利视频导航在线观看| 中文字幕观看中文字幕免费 | 欧美一区日韩二区三区四区| 国产亚洲综合5388| 后入日韩翘臀蜜桃臀美女| 日产国产欧美精品另类| 无码精品黑人一区二区老人| 玖辛奈18禁同人污本子| 四虎国产精品国产精品国产精品| 97成人老师在线视频| 色欲AV蜜桃一区二区三| 亚洲av中文免费在线| 亚洲最大的自拍偷拍网| 久久精品国产亚洲av清纯| 美国十次了亚洲天堂网国产| 日本老熟老熟妇七十路| 98热视频精品在线观看| 亚洲国产综合久久精品| 黑川堇人妻88av| 91九色pony蝌蚪| 欧美最新一区二区三区| 青青青青午夜手机国产视频| 亚洲第一区av中文字幕| av成人三级高清日韩| 丰满少妇_区二区三区| 五月天男人的天堂中文字幕| 九九热在线精品播放| avgo成人短视频| 大尺度av毛片在线网址| 韩国资源视频一区二区三区| 亚洲精品综合欧美精品综合| 天堂在线中文字幕av| 日本欧美亚洲国产啊啊啊| 老司机伊人99久久精品| 四季av人妻一区二区三区| 五月婷婷激情视频网| 日本人妻熟妇丰满成熟HD系列| 亚洲国产日韩a在线欧美| 亚洲一区二区精品在线播放| 日韩av水蜜桃一区二区三区| 日本美女爱爱视频网站| 99亚偷拍自图区亚洲| 欧美精品熟妇免费在线| 在线人成视频免费观看尤物| 欧美成人少妇人妻精品| 午夜福利在线不卡视频| 交换的一天中文字幕在线视频 | 色视频在线播放免费观看| 新亚洲天堂男子av| 老熟女xxxⅹhd老熟女性| 亚洲图片另类综合小说| 香港日本台湾经典三级| 黄在线看片免费人成视频| 人妻系列中文字幕大乳丰满人妻 | 日本福利片在线播放| 69精品互换人妻4p| 精品欧美乱码久久久| 中文字幕av人妻一区二区三区 | 午夜久久久久欠久久久久| 91精品麻豆91夜夜骚| 自拍偷拍 国产激情| 亚洲韩精品一区二区三区| 亚洲欧美另类丝袜另类自拍| 国产激情在线观看一区二区三区| 国产中年夫妇激情高潮| 日本一区二区三区的资源| 99999久久久精品| 美女激情久久久久久久| 亚洲欧美成人午夜一区二区| 男女真人做带声音视频图片| 丰满人妻被猛烈进入中文字幕| 黄色片免费国产精品| jandara在线观看| 中国精品人妻一区二区| 视频免费在线观看网站| 97精品人妻免费视频| 天天弄天天草天天日天天| 99亚偷拍自图区亚洲| 1区3区4区产品乱入视频| 亚洲av 综合av| 日韩无码国产一区二区| 在线 激情 亚洲 视频| 欧美精品乱码99久久蜜桃免费| 亚洲精品乱码久久久久app | 91人妻人人爽色啊啊啊| 人妻视频网站快射视频网站| 欧美黑人1区2区3区| 老熟女xxxⅹhd老熟女性| 亚洲a区在线免费观看| 久久av色噜噜ai换脸| 18在线观看免费观看| 亚洲一区亚洲二区成人福利| 久久久久性感美女偷拍视频| 日本a级2020在线观看| 91麻豆精品国产在线| 日本四十路人妻熟女| 青青青在线视频观看97| 成人av在线视频免费| 在线观看中文字幕少妇av| 亚洲女人自熨在线视频| 亚洲精品综合欧美精品综合| 夜夜人人干人人爱人人操| 9420高清视频在线观看国语版| 裸日本资源在线午夜| 午夜在线成人免费电影| 日本有码精品一区二区三区| 成人做爰av在线观看网站| 亚洲熟女乱色一区二区三区视频| 亚洲成人偷拍自拍在线| 丰满放荡熟妇在线播放| 欧美大鸡吧男操女啊啊啊视频| 久久久西西gogo日本美女人体| 黄色av日韩在线观看| 午夜野花视频在线观看| 中文人妻av一区二区三区| 亚洲av毛片一区二区三区网| 午夜精品一区二区三区不卡顿| 女生裸体视频免费网站| 久久无码高清免费视频| 在线免费视频999| 亚洲男人的天堂最新网址| 5d蜜桃臀女无痕裸感| 偷拍欧美日韩另类图片| 亚洲第一区av中文字幕| 国产高清视频www夜色资源| 欧美情色av在线观看| www国产亚洲精品久久久| 亚洲情色777中文字幕| 黄色av网址在线播放| 又爽又粗又猛又色又黄视频| 偷拍熟女大胆免费视频| 亚洲乱熟女一区二区三区影片| 久久久久久a女人处女| 999精品视频免费在线观看| 欧美一级日韩一级亚洲一级va| 亭亭五月天在线观看| 日韩一区二区在线播放观看| 午夜五十路久久福利| 大香焦一道本一区二区三区| 中文字幕在线观看av观看| 天天弄天天草天天日天天| 中文字幕丰满子伦无码专区| 黑人大巨屌操美女逼| 55夜色66夜色亚洲精品| 大乳丰满人妻中文字幕韩国hd| 日本一本午夜在线播放| 午夜久久久久欠久久久久| 五月激情婷婷四射基地| 日本高清有码在线视频| tobu8日本高清| 欧美性受黑人猛交裸体视频| 西野翔人妻中文字幕中字在| 可在线免费观看av| 亚洲av在线免费播放| 91超碰九色porny| 绿巨人浩克在线视频观看| 婷婷色综合五月天视频| 丰满人妻熟女aⅴ一区| 精品人妻在线激情视频| 中文字幕欧美一区二区视频| 久久热在线免费观看| 精品国模一区二区三区欧美| 久久久久性感美女偷拍视频| 亚洲高清一区二区三区久久| 高潮喷水在线视频观看| jiee日本美女视频网站| 亚洲第一成年偷拍视频| 欧美日韩黄片免费在线观看| 精产国品一二三产品区别91| 欧美一级特黄大片在线| 亚洲国产中文字幕在线看| 99精品久久一区二区| 又爽又粗又猛又色又黄视频| 午夜五十路久久福利| 99女福利女女视频在线播放| 美女网站视频久久精品| 欧美色视频网址大全| 日韩人妻中文字幕区| 亚洲天堂av最新在线| 天天天天天天天天干夜夜| 人人妻人人爽人人爽欧美一区| 农村大炕有肉大屁股熟妇| 公侵犯人妻中文字幕巨| 日本有码精品一区二区三区| alisontyler和黑人| 免费在线观看视频啪啪| 人妻激情综合久久久久蜜桃 | 欧美在线视频不卡一区| 夜夜操夜夜爱夜夜摸| 中文字幕熟女人妻丝袜丝在线| 亚洲午夜国产末满十八岁勿进网站| 精品国模一区二区三区欧美| 啪啪啪网站免费看视频| 亚洲乱码国产乱码精品精视频 | 国产精美视频精品视频精品| 呻吟求饶的人妻中文字幕| 91精品麻豆91夜夜骚| 国语对白性爱三级片免费看| 伊人久久综合国产精品| 国产成人情侣激情视频| 欧美啪啪一区二区三区| 熟女一区二区视频在线| 高清国产美女a一级毛片| 中国精品人妻一区二区| 亚洲美女露隐私av一区二区精品| 亚洲欧美成人午夜一区二区| 亚洲中文字幕无线乱码人妻精品| 不卡视频在线 欧美日韩| lutu玩弄人妻短视频| 99热这里只有精品免费播放| 久久久西西gogo日本美女人体| 不卡在线一区二区三区| 日韩三级精品电影久久久久| 99999久久久精品| 国产精品久久久久精品三级18| 国产黑色丝袜 在线日韩欧美| 男女真人做带声音视频图片| 日韩激情文学在线视频| 人妻熟女 亚洲 一页二页| 日本香港韩国三级黄色| 欧美啪啪一区二区三区| 在线观看视频免费一区二区三区 | 国产精品久久久99| 国产经典精品欧美日韩| av无限看熟女人妻另类av| 先锋人妻啪啪中文字幕| 午夜福利片无码10000| 欧美色区国产日韩亚洲区| 国产剧情av在线免费观看| 国产经典精品欧美日韩| 人妻少妇的va视频| 国产又粗又长又大视频| 搞乱在线在线观看视频| 免费24小时人妻视频| 亚洲熟女乱色一区二区三区视频| 日本清纯中文字幕版| 国产伦理二区三区在干嘛呢| 黄色大片一级老太太操逼| avtt中文字幕手机版| 色欲AV蜜桃一区二区三| 亚洲熟妇在线视频观看| 92麻豆一区二区三区| 亚洲国产日韩a在线欧美| 熟女一区二区视频在线| av在线男人的天堂亚洲| 欧美视频免费观看777| 熟女人妻精品视频一区| 天天想要天天操天天干| 自拍偷拍 亚洲性图 欧美另类| 99999久久久精品| 欧美精品999不卡| 全球高清中文字幕av| www,日韩av,com| 美女精品久久久久久久久| 亚洲日本欧美韩国另类综合 | 国产av精品一区二区三区久久| 91系列视频在线播放| 国产青青青青草免费在线视频| 91精品资源在线观看| 亚洲国产美女主播在线观看| 亚洲国产日韩a在线欧美| 成人18禁高潮片免费日本| 最近最新最好看的中文字幕| av资源中文字幕在线观看| 国产一区二区三区四区精| 91精品一区一区三区| 一区二区三区国产在线成人av| 老熟妇一区二区三区v∧88| 亚洲图片另类综合小说| 久久国产精品久精国产爱 | 亚洲av日韩久久网站| avjpm亚洲伊人久久| 亚洲蜜桃久久久久久| 天天操天天搞天天操| 国际精品熟女一区二区| 99亚偷拍自图区亚洲| 精品人妻人人做人人爽| 国际日韩日韩日韩日韩日韩| 有码一区二区三区四区五区| 最新国产精品久久精品app| 亚洲国产精品久久久久久无码| 2020精品视频在线| 久久久亚洲熟女一区二区| 日韩黄色在线观看网站上 | 色丁香久久激情综合网| 中文字幕 人妻 熟女| 亚洲 综合 欧美 一区| 中文字幕福利视频在线一区| 久久国产半精品99精品国产| 欧美日韩高清片在线观看| 成人午夜高清福利视频| 9久re热视频在线精品| 美女av色播在线播放| 国产激情视频在线观看的| 亚洲国产中文字幕在线看| 亚av一二三在线观看| 少妇被中出一区二区| 亚洲高清免费在线观看视频| 韩国资源视频一区二区三区| 日韩欧美中文字幕老司机三分钟| 一二区二区不卡视频| 国产av精品一区二区三区久久| 久久久久久免费观看av| 91系列视频在线播放| 日韩一级欧美一级片| 熟女俱乐部jukujoclub| 亚洲精品色图1234| 国产精品剧情av在线播放| 性感美女人妻久久久| 欧美肥妇久久久久久| 亚洲女人自熨在线视频| 国产av啊啊啊啊啊啊啊| 黄色片免费国产精品| 美女福利视频一区二区三区四区| 无码精品黑人一区二区老人| 亚洲欧美激情国产综合久久久| 18福利视频在线观看| 一区二区欧美 国产日韩| 69国产在线视频网站| 国产欧美福利在线观看| 99 re国产精品| 青青操久久综合激情| 欧美日韩亚洲tv不卡久久| 午夜福利在线不卡视频| 日韩一级欧美一级片| 老熟女 露脸 嗷嗷叫| 精品欧美乱码久久久| 亚洲同性同志一二三专区| 97视频人人爱麻豆| 亚洲字幕一区二区夜色av| 天天摸天天舔天天操天天日| 日韩少妇免费在线播放| 2021国产剧情麻豆| 亚洲第一成年偷拍视频| 92在线播放观看视频| 羞羞漫画无限免费观看秋蝉| 七色福利视频在线观看| 5566熟女人妻人妻| 亚洲男人的天堂最新网址| 69精品互换人妻4p| 51精品视频在线免费观看| 欧美亚洲另类精品第一页| 后入日韩翘臀蜜桃臀美女| 男女啪啪啪网站在线观看免费| 4438全国成人免费视频| 欧美国产精品久久久免费| 亚洲成人,国产精品| 亚洲精品激情视频在线观看 | 鸡巴在里面福利视频在线观看| 国产精品久久久久久成人久| 伊人免费观看视频一| 日本少妇三级交换做爰做| 国产成人情侣激情视频| 国产天堂av不卡网| 美利坚合众国av天堂| 国产福利一区二区三区在线观看 | 人妻在线中文视频视频| 嗯~嗯~啊啊啊~高潮了软件| 成人免费视频现网站99在线观看 | 大成色亚洲一二三区| 亚洲国产中文字幕在线看| 久久久视频在线播放| 国产经典精品欧美日韩| 国产人妻熟女ⅹxx丝袜| 精品不卡一区二区三区| 亚洲a区在线免费观看| 国产漂亮白嫩美女在线图片| 日本少妇丰满大bbb的小乳沟| 欧美亚洲愉拍一区二区三区| 女生裸体视频免费网站| 五月的婷婷综合视频| 91精品国产成人久久久久久| 中文字幕丰满子伦无码专区| 午夜五十路久久福利| 先锋人妻啪啪中文字幕| 最新国产精品拍在线观看| 三区美女视频在线观看| 亚洲美女露隐私av一区二区精品| 亚洲国产电影的一区| 快色视频在线观看免费| 欧美情色av在线观看| 国产91免费在线观看| 蜜乳视频一区二区三区| 国产激情在线观看一区二区三区| 日韩欧美一区二区三区免费看| 国产精品蝌蚪自拍视频| 99免费观看在线视频| 高清欧美色欧美综合网站 | 得得爱在线视频观看| 中国精品人妻一区二区| 一区二区在线观看视频观看| 色999日韩偷自拍拍免费| 日韩欧美国产一区二区在线观看 | 91污污在线观看视频| 欧美日韩亚洲国产视频二区| 亚洲一级熟妇丰满的女人| 中文字幕一区二区三区久久久| 亚洲熟女乱色一区二区三区视频 | 91青青青国产免费高清| 婷婷综合缴情亚洲五月伊人| 快使劲弄我视频在线播放| 亚洲欧美日韩中文在线观看| 99热这里只有精品免费播放| 无码人妻丰满熟妇区五路| 亚洲自拍偷拍av在线| 亚洲国产中文字幕在线看| 全国熟妇精品一区二区免费视频| 得得爱在线视频观看| 91精产国品一二三产区区别网站| 一二区二区不卡视频| 国产激情视频在线观看的 | 欧美第一激情综合网欧美激情| 91精品视频在线观看视频| 99久久免费播放在线观看视频| 亚洲欧美另类校园春色| 2020精品视频在线| 国产人妻熟女ⅹxx丝袜| 干逼又爽又黄又免费的视频| 亚洲 自拍 激情 另类| 免费的啪啪视频软件| 午夜国产一区二区三区| 亚洲人成大片在线观看| 午夜精品久久秘?18免费观看| 久久国产半精品99精品国产| 自拍偷拍色图亚洲天堂| 国产主播诱惑毛片av| 国产福利小视频在线观看网站| 中文字幕一区二区人妻视频| 最近日韩免费在线观看| 天天曰天天摸天天爽| 女人高潮潮呻吟喷水网站| 91色哟哟视频在线观看| 秋霞成人午夜鲁丝一区二区三区| 天天天天天天天天干夜夜| 熟女人妻精品视频一区| 全彩漫画口工18禁| 9999久久久久老熟妇二区| 一区二区三区国产在线成人av| 中文字幕熟女乱一区二区| 精品视频在线观看免费99| 18禁男女啪啪啪无遮挡| 日本四十路人妻熟女| 亚洲av网站一区二区三区| 最新激情中文字幕视频| 亚洲一区视频中文字幕在线播放| aaaa级少妇高潮在线观看| 日韩人妻中文字幕二区| 精品视频一区二区三区◇| 男女真人做带声音视频图片| 国产福利一区二区三区在线观看| 中文字幕日韩人妻在线三区| 92麻豆一区二区三区| 大乳丰满人妻中文字幕韩国hd| 狂操鸡巴小骚逼视频免费观看| 91在线九色porny| 日本少妇精品免费视频| 911精产国品一二三产区区| 中文字幕免费啪啪啪| alisontyler和黑人| 欧美日韩国产在线中文字幕| 99热这里只有精品免费播放| 中国特黄色性生活片| 美国十次了亚洲天堂网国产| 久久人人爽人人爽人人av东京热| 国产一区二区手机在线观看| 欧美男男在线观看视频网站| 欧美一区日韩二区三区四区| 人妻激情综合久久久久蜜桃| 青青操天堂在线观看视频| 美国伦理片午夜理论片| 91精品久久久久久久99蜜月 | 黄色av 在线观看| 亚洲精品国产99999| 久久99国产中文丝袜| 全彩漫画口工18禁| 18在线观看免费观看| 自拍偷拍色图亚洲天堂| 一看就是假奶的av| aaaa级少妇高潮在线观看| 啪啪啪网站免费看视频| 国产一区两区三区福利小视频| 天天综合久久无人区| 亚洲天堂色综合久久| 五十岁熟妇高潮喷水| 国产午夜在线播放视频| 又粗又长又硬又黄又爽| 亚av一二三在线观看| 91精产国品一二三产区区别网站| 中文字幕日韩人妻在线三区| 青青青免费手机视频在线观看| 自拍偷拍亚洲综合第一页| 91在线九色porny| 欧美精品一区二区三区观看 | 男人的天堂av中文字幕| av在线观看视频免费| 亚洲激情视频在线观看免费| 大香蕉伊人97在线| 欧美日韩综合精品无人区| 黑人黄色免费一级av| 天天在线播放日韩av| 五月的婷婷综合视频| 亚洲 综合 欧美 一区| 天天看天天爱天天日| 老司国产精品视频免费观看| 首页欧美日韩中文字幕| avgo成人短视频| 日韩欧美黄色免费网站| 亚洲18片综合国产av| 全国熟妇精品一区二区免费视频| 91精品视频在线观看视频| 99久久国产精品免费热| 杜达雄啪啪毛片视频| 亚洲女人自熨在线视频| 久久精品国产亚洲av清纯| 欧美肥妇久久久久久| 五月激情婷婷四射基地| 男人的天堂aⅴ在线| 国产白丝一区二区三区av| 欧美成人少妇人妻精品| 国产主播诱惑毛片av| 天天干夜夜操91视频网站| 天天操天天日天天碰| avjpm亚洲伊人久久| 国产探花自拍亚洲av| 九九视频在线观看全部| 大香蕉在线欧美在线视频| 精产国品一二三77777| 91精品夜夜夜一区二区| 午夜国产免费视频亚洲| 亚洲美女露隐私av一区二区精品| 亚洲欧美成人午夜一区二区| 午夜一区二区三区视频在线观看 | 一区二区三区五区六区| 最新久久这里只有精品| 国产毛片特级Av片| 亚洲韩精品一区二区三区| 久久免费视频ww一区| 成人大片男人的天堂| 国产成人av在线你懂得| 一区二区三区免费版在线| 日本一区二区三区调教性奴视频 | 日韩人妻精品久久久久| 红桃视频国产av在线| 老司机免费视频福利0| 免费成人av麻豆| av网页免费在线观看| 精品国产无乱码一区二区三区| 亚洲唯美激情综合四射| 黑人侵犯人妻森泽佳奈| 插鸡视频免费网站在线播放| 成人av在线视频免费| 汤姆提醒30秒中转进站口| 真人一进一出抽搐大尺度视频| 亚洲天堂男人的天堂| 外国美女舔男人坤坤| 中文字幕 人妻 熟女| av在线观看视频免费| 91九色尤物无套内射| 亚欧洲乱码视频一二三区| 69久久夜色精品国产69乱电影| 亚洲色大WWW永久网站| 欧美成人久久久桃色aa| iga肾三级算严重吗| 久久99精品热在线观看| 自拍偷拍 亚洲性图 欧美另类| 亚洲一区二区三区四区入口| 日本欧美视频在线免费| av 一区二区三区 熟女| 久久一级片三上悠亚| 亚洲欧洲无码一区2区无码| 亚洲色大WWW永久网站| 五月婷婷伊人久久中文字幕| 大秀成年人国产精品视频| 韩国资源视频一区二区三区| 黑人爆操女人免费视频| 美国伦理片午夜理论片| 快使劲弄我视频在线播放| 东京热日韩av在线| 亚洲黄色免费在线观看网站| 日本在线免费观看国产精品| 美女福利视频一区二区三区四区| 丝袜美腿日韩av一区| 午夜在线观看一级毛| 一级做性色a爱片久久片| 日韩av熟妇在线观看| 丰满少妇_区二区三区| 最新日韩av电影在线播放| 熟妇高潮久久久久久久| 欧美第一激情综合网欧美激情| 99免费观看在线视频| 欧美成人一二三在线网| 欧美日韩精品aaa| 国产 少妇 一区二区| 69精品人妻久久久久久久久久久 | 亚洲成人自拍av在线| 2019年中文字幕在线播放视频| 99亚偷拍自图区亚洲| 日本高清有码在线视频| 日韩成人精品久久久免费看| 欧美黄色一区二区三区视频| 日韩人妻中文字幕区| 乱子伦国产一区二区三区| 深夜福利免费观看在线看| 韩国毛片w妈妈的朋友7| 1级黄色片在线观看| 极品风骚人妻3p视频| 有码一区二区三区四区五区| 一区二区三区免费版在线| 日本人妻熟妇丰满成熟HD系列| 国产经典精品欧美日韩| 中文字幕亚洲乱码精品无限| 国产精品免费看一区二区三区| 日韩激情文学在线视频| 中文字幕福利视频在线一区| 夜色福利视频免费观看| 天天日天天亲天天操| 快色视频在线观看免费| 老色鬼精品视频在线观看播放| 久久人妻诱惑我视频| 国产av高清二区三区| 男女爱爱好爽视频免费看| 日本人妻熟妇丰满成熟HD系列 | 亭亭五月天在线观看| 最新国产精品综合网高清| 18在线观看免费观看| 天堂网免费在线电影| 精产国品一二三产品区别91| 一级做性色a爱片久久片| 午夜夫妻性生活视频| 欧美丝袜亚洲国产日韩| 亚洲在线观看中文字幕av| 青青在线视频看看| 熟女俱乐部jukujoclub| 日本黄页在线观看视频| 色欲AV亚洲AV无码精品| 免费在线观看视频啪啪| 不卡在线一区二区三区| 国产三级自拍视频在线观看网站| 精产国品一二三77777| 天天综合久久无人区| 少妇熟女天堂网av| 国产精品无码无卡免费观| 老司国产精品视频免费观看| 国产午夜羞羞一区二区三区| 欧美色区国产日韩亚洲区| 69精品互换人妻4p| 黄很色很在线免费视频网站| 91超精品碰国产在线观看| 久久人人爽人人爽人人av东京热| av资源中文字幕在线观看| 日韩一级视频一区二区三区| 亚洲av综合av一去二区三区| 欧美成人短视频在线播放| 国产精品剧情av在线播放| 人人妻人人爽人人爽欧美一区| 欧美肥妇久久久久久| 久久中文字幕av一区二区| 国产伦理二区三区在干嘛呢| 精品人妻人人做人人爽| 亚洲国产精品 久久久| 快色视频在线观看免费| 国产视频成人一区二区| 99在线视频精品观看高| 亚洲国产精品青青草| 丰满少妇高潮喷水视频| 欧美一区二区三区视频看| 亚洲妹妹我爱你在线观看| 天天干夜夜爽狠狠操| 大成色亚洲一二三区| 91福利高清在线播放| 69久久夜色精品国产69乱电影| 亚洲理论在线a中文字幕97| 精产国品一二三产品区别97| av丝袜免费在线观看| 免费看超污视频在线观看| 天天干天天日天天弄| 亚洲精品色图1234| 91人妻人人做人人爽高清| 亚洲全国精品女人久久久| 国产黄色主播网址大全在线播放 | 99在线视频精品观看高| 国产夫妻视频在线观看免费| 98热视频精品在线观看| 得得爱在线视频观看| 大香蕉在线欧美在线视频| 中文人妻av一区二区三区| 少妇被粗大的猛进69视频| 天天摸天天干夜夜操| 久久99国产中文丝袜| 97香蕉久久国产超碰| 免费中文三级在线观看| 69国产精品成人aaaaa片| 青青青在线视频观看97| 97人妻av人人澡人人爽| 欧美精品熟妇免费在线| 伊人免费观看视频一| jandara在线观看| 成人av中文字幕在线看| 国产在线小视频一区二区| 男人的天堂av中文字幕| 久久国产半精品99精品国产| 五十岁熟妇高潮喷水| 豆豆专区操逼性视频在线| 精品国模一区二区三区欧美| 51vv精品视频在线观看| 中日韩又粗又硬又大精品| 91精品国产综合99| 夜夜操夜夜爱夜夜摸| 日韩人妻精品久久久久| 人妻色综合aaaaaa网| 加勒比东京热绿帽人妻多人操| 亚洲国产精品 久久久| 黑人巨大精品一区二区在线| 亚洲制服丝袜美腿在线| 成年人黄色日本视频| 四虎精品久久免费最新| 中文字幕人妻精品精品| 亚洲午夜精品视频节目| 妈妈的朋友中字在线免费观看| 97人妻av人人澡人人爽| 亚洲图片另类综合小说| 亚洲熟妇丰满多毛xxxx网站| 亚洲一区视频中文字幕在线播放| 另类欧美激情校园春色| 大秀成年人国产精品视频| 最新激情中文字幕视频| 亚洲成a人77777| 大屁股熟女一区二区视频| 久久人妻诱惑我视频| 国产igao激情在线视频入口| 99国产精品国产精品毛片19| 美国男的操女孩的小嫩逼| 国产中文亚洲熟女日韩| 青青青青青爽视频在线| 男人的天堂av中文字幕| 大香蕉在线欧美在线视频| 最近最新最好看的中文字幕| 日本福利视频网站导航| 国产精品免费看一区二区三区| 亚洲成人五月婷婷久久综合| 特级aaaaa黄色片| 国产资源网站在线播放| 日韩国产欧美久久一区| av激情四射五月婷婷| 亚洲欧美日韩电影一区| 大乳人妻一区二区三区| 2018中文字字幕人妻| 亚洲一区视频中文字幕在线播放 | 中文字幕免费啪啪啪| 欧美日韩综合精品无人区| 外国美女舔男人坤坤| 亚洲欧美精品海量播放| 麻豆国产91制片厂| 天天爽天天操天天插| 农村大炕有肉大屁股熟妇| 亚洲熟女在线免费观看| 男生用大肌巴操美女骚穴| a级黄片免费观看| 青青青在线观看国产| 亚洲免费午夜污福利| 男人资源站中文字幕| 有码一区二区三区四区五区| 亚洲成人三级黄色片| 午夜国产一区二区三区| 黑人大巨屌操美女逼| 美女张开腿给男人桶爽的软件 | a级黄片免费观看| 中文字幕免费啪啪啪| 欧美成人屋影院在线视频观看| 欧美精品乱码99久久蜜桃免费| 精品人妻在线激情视频| 久久精品国产亚洲av清纯| 九一精品人妻一区二区三区| 国产精品国产三级在线高清观看| 欧美三区四区在线视频| 午夜在线成人免费电影| 亚洲国产日韩精品在线| 午夜国产成人精品视频观看| av成人三级高清日韩| 久久午夜免费鲁丝片| 欧美日韩黄片免费在线观看| 99国产精品久久99久久久| 久久国产半精品99精品国产| 国产精品性感美女视频| 亚欧洲乱码视频一二三区| 亚洲国产精品自产拍在线观看| 真人一进一出抽搐大尺度视频| 亚洲成人,国产精品| 99久久国产精品免费消防器材| 九九六视频,这里只有精品| 丰满少妇高潮喷水视频| 午夜福利国产精品久久久久| 日本人妻熟妇丰满成熟HD系列| 天天日天天亲天天操| 97精品视频,全部免费| 啊不行啊操逼好爽大鸡吧视频| ysl蜜桃色7425| 亚洲宅男噜噜噜66在线观看| 亚洲国产精品青青草| 日本人妻熟妇丰满成熟HD系列| 午夜福利片无码10000| 久久无码高清免费视频| 欧美精品乱码99久久蜜桃免费| 黄色片黄色片黄色片黄色片黄色| 18福利视频在线观看| 午夜国产精品免费视频| 黄色网络中文字幕日本| 偷拍熟女大胆免费视频| 抽插小穴啊啊啊视频| 一区二区三区国产精华液区别大吗 | yellow在线亚洲精品一区| 强乱人妻中文字幕日本| 亚洲无码专区中文字幕专区| 夜夜操夜夜爱夜夜摸| 午夜夫妻性生活视频| 午夜精品老牛av一区二区三区| 黄色片免费网站在线| 超级黄肉动漫在线观看| 黑人大巨屌操美女逼| 亚洲永远av在线播放| 熟妇高潮久久久久久久| 户外露出视频在线观看| 自拍偷拍 亚洲性图 欧美另类| 久久午夜免费鲁丝片| 青青青在线观看国产| 五月婷婷伊人久久中文字幕| 操死你美女在线视频| 亚洲黄色成人一级片| 麻豆白洁少妇在线播放| 91九色91在线视频| 福利在线国产小视频| 伊人网在线欧美日韩在线| 顶级欧美色妇xxxx| 午夜精品视频免费观看| 美女扒开逼逼给你看| 在线观看中文字幕精品av| 18禁男女啪啪啪无遮挡| 午夜92福利1000| 亚洲成人激情在线综合| 欧美成人一二三在线网| 中文人妻av一区二区三区| 亚洲综合首页综合在线观看| 一区二区三区五区六区| 日韩av水蜜桃一区二区三区| 国产亚洲综合5388| 午夜精品小视频在线播放| 91九色91在线视频| 日本清纯中文字幕版| 性感人妻 中文字幕| 日本黄色一级电影网址| 蜜乳视频一区二区三区| 2020国产成人精品视频| 日本韩国福利在线播放| 一区二区三区资源视频| 亚洲成人五月婷婷久久综合| 亚洲乱码国产乱码精品精视频| 欧美精品熟妇免费在线| 久久久久久a女人处女| 92麻豆一区二区三区| 视频免费在线观看网站| 99精品久久99久久久久一| 不卡一区二区视频在线| av一区二区三区蜜桃| 网站在线观看蜜臀91| 伊人网在线免费观看| 九九九九九久久久国产| 午夜五十路久久福利| 天天日 天天舔 天天射| 上床啪啪啪免费视频| 男女真人做带声音视频图片| 国产男人的天堂一区| 九色porny91国产| 国产一级一国产一级毛片| 亚洲gay视频在线观看| 亚洲成人偷拍自拍在线| 操死你美女在线视频| 日本少妇人妻中文在线| 日韩久久不卡免费视频| 国产漂亮白嫩美女在线图片| 2021国产剧情麻豆| 91日本精产品一区二区三区| 国产精品黄色片大全| 日韩国产欧美久久一区| 182tv精品免费在线观看| 快色视频在线观看免费| 可以直接看av网站| 中文字幕人妻精品精品| 亚洲国产精品一区二区第二页| 国产高清自拍偷拍在线| 日本韩国欧美在线视频| 精品精品精品精品精品污污污污| 第一福利视频在线观看| 黑人大巨屌操美女逼| 在线播放 日韩 av| 男人资源站中文字幕| 日本电影一级人妻在线播放四区| 亚洲精品色图1234| 国产天堂av不卡网| 上床啪啪啪免费视频| 特级aaaaa黄色片| 欧美视频免费观看777| 91九色91在线视频| 丰满人妻熟女aⅴ一区| 久久精品久久久久观看99水蜜桃| av中文字幕国产精品| 在线 制服 中文字幕 日韩| 黄色片免费国产精品| 欧洲精品在线免费观看| 亚洲高清一区二区三区久久| 欧美人与动欧交视频| 天天早上头和脸出汗是怎么办| 天天躁狠狠躁狠狠躁性色| 熟妇精品午夜久久久久| 中文字幕亚洲乱码精品无限| 看女人大BB群伦交| 人妻中文字幕亚洲在线| 亚洲一区二区三区四区入口| 国产漂亮白嫩美女在线图片 | 国产在线观看av一区| 日本成年视频在线免费观看| 55夜色66夜色亚洲精品| 国产精品国产三级在线高清观看| 欧美一区日韩二区三区四区| 久久久久高潮白浆久久| 91污污在线观看视频| 亚洲成a人77777| 亚洲精品1卡2卡3卡| 国产又粗又长又大视频| 天天操天天搞天天操| 色噜噜噜噜色噜噜色合久一| 天天日天天玩天天摸| 亚洲欧美一级特黄大片| 日韩欧美黄色免费网站| 亚洲精品中文字幕手机在线免费看 | 成人免费电影二区三区| av人摸人人人澡人人超碰小说| 久久99热精品免费观看视| 最新福利二区三区视频| 99久久国语露脸国产精品| 欧美一级特黄大片做受99| 东京热日本一区二区三区| 麻豆国产91制片厂| 久久国产半精品99精品国产| 黄在线看片免费人成视频| 奇米网首页神马久久| 丝袜美女诱惑佐佐三上 | 黑人大吊大战亚洲女人。| 99久久碰碰人妻国产| 99久久免费播放在线观看视频| 东京热日韩av在线| 中文字幕熟女乱一区二区| 亚洲最强的25个城市| 可在线免费观看av| 日本不卡视频一二三区| 黄片操操操操操操c| 黄色av 在线观看| 超碰在线免费观看视频97 | 老司机伊人99久久精品| 都市激情校园春色 亚洲| 女人高潮潮呻吟喷水网站| 老司机免费视频福利0| 欧美成人红桃视频在线观看| 天堂网免费在线电影| 日本a级2020在线观看| 亚洲第一页欧美第一页| 放荡人妻极品少妇全集| 快使劲弄我视频在线播放| 亚洲欧美精品日韩偷拍| 高清国产美女a一级毛片|