日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端知识总结(二)

發布時間:2023/12/10 HTML 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端知识总结(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

33、閉包

閉包的概念

上一節代碼中的f2函數,就是閉包。

各種專業文獻上的"閉包"(closure)定義非常抽象,很難看懂。我的理解是,閉包就是能夠讀取其他函數內部變量的函數。

由于在Javascript語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解成"定義在一個函數內部的函數"。

所以,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋梁。

閉包的用途

閉包可以用在許多地方。它的最大用處有兩個,一個是前面提到的可以讀取函數內部的變量,另一個就是讓這些變量的值始終保持在內存中。

怎么來理解這句話呢?請看下面的代碼。

function f1(){var n=999;    nAdd=function(){n+=1}function f2(){       alert(n);}return f2;}var result=f1();  result(); // 999  nAdd();  result(); // 1000

在這段代碼中,result實際上就是閉包f2函數。它一共運行了兩次,第一次的值是999,第二次的值是1000。這證明了,函數f1中的局部變量n一直保存在內存中,并沒有在f1調用后被自動清除。

為什么會這樣呢?原因就在于f1是f2的父函數,而f2被賦給了一個全局變量,這導致f2始終在內存中,而f2的存在依賴于f1,因此f1也始終在內存中,不會在調用結束后,被垃圾回收機制(garbage collection)回收。

這段代碼中另一個值得注意的地方,就是"nAdd=function(){n+=1}"這一行,首先在nAdd前面沒有使用var關鍵字,因此nAdd是一個全局變量,而不是局部變量。其次,nAdd的值是一個匿名函數(anonymous function),而這個匿名函數本身也是一個閉包,所以nAdd相當于是一個setter,可以在函數外部對函數內部的局部變量進行操作。

使用閉包的注意點

1)由于閉包會使得函數中的變量都被保存在內存中,內存消耗很大,所以不能濫用閉包,否則會造成網頁的性能問題,在IE中可能導致內存泄露。解決方法是,在退出函數之前,將不使用的局部變量全部刪除。

2)閉包會在父函數外部,改變父函數內部變量的值。所以,如果你把父函數當作對象(object)使用,把閉包當作它的公用方法(Public Method),把內部變量當作它的私有屬性(private value),這時一定要小心,不要隨便改變父函數內部變量的值。

var name = "The Window";var object = {name : "My Object",getNameFunc : function(){return function(){return this.name;};}};  alert(object.getNameFunc()());//The Window var name = "The Window";var object = {name : "My Object",getNameFunc : function(){var that = this;return function(){return that.name;};}};  alert(object.getNameFunc()());//My Object

34、this指向

首先必須要說的是,this的指向在函數定義的時候是確定不了的,只有函數執行的時候才能確定this到底指向誰實際上this的最終指向的是那個調用它的對象

例子1:

這里的函數a實際是被Window對象所點出來的

function a(){var user = "追夢子";console.log(this.user); //undefinedconsole.log(this); //Window } a();//window.a()

例子2:

var o = {user:"追夢子",fn:function(){console.log(this.user); //追夢子} } o.fn();

這里的this指向的是對象o,因為你調用這個fn是通過o.fn()執行的,那自然指向就是對象o,這里再次強調一點,this的指向在函數創建的時候是決定不了的,在調用的時候才能決定,誰調用的就指向誰,一定要搞清楚這個。

var o = {a:10,b:{a:12,fn:function(){console.log(this.a); //12}} } o.b.fn();

這里同樣也是對象o點出來的,但是同樣this并沒有執行它,那你肯定會說我一開始說的那些不就都是錯誤的嗎?其實也不是,只是一開始說的不準確,接下來我將補充一句話,我相信你就可以徹底的理解this的指向的問題。

情況1:如果一個函數中有this,但是它沒有被上一級的對象所調用,那么this指向的就是window,這里需要說明的是在js的嚴格版中this指向的不是window,但是我們這里不探討嚴格版的問題,你想了解可以自行上網查找。

情況2:如果一個函數中有this,這個函數有被上一級的對象所調用,那么this指向的就是上一級的對象。

情況3:如果一個函數中有this,**這個函數中包含多個對象,盡管這個函數是被最外層的對象所調用,this指向的也只是它上一級的對象,**例子3可以證明,如果不相信,那么接下來我們繼續看幾個例子。

var o = {a:10,b:{// a:12,fn:function(){console.log(this.a); //undefined}} } o.b.fn();

盡管對象b中沒有屬性a,這個this指向的也是對象b,因為this只會指向它的上一級對象,不管這個對象中有沒有this要的東西。

還有一種比較特殊的情況,例子4:

var o = {a:10,b:{a:12,fn:function(){console.log(this.a); //undefinedconsole.log(this); //window}} } var j = o.b.fn; j();

這里this指向的是window,是不是有些蒙了?其實是因為你沒有理解一句話,這句話同樣至關重要。

this永遠指向的是最后調用它的對象,也就是看它執行的時候是誰調用的,例子4中雖然函數fn是被對象b所引用,但是在將fn賦值給變量j的時候并沒有執行所以最終指向的是window,這和例子3是不一樣的,例子3是直接執行了fn。

構造函數版this:

function Fn(){this.user = "追夢子"; } var a = new Fn(); console.log(a.user); //追夢子

這里之所以對象a可以點出函數Fn里面的user是因為new關鍵字可以改變this的指向,將這個this指向對象a,為什么我說a是對象,因為用了new關鍵字就是創建一個對象實例,理解這句話可以想想我們的例子3,我們這里用變量a創建了一個Fn的實例(相當于復制了一份Fn到對象a里面),此時僅僅只是創建,并沒有執行,而調用這個函數Fn的是對象a,那么this指向的自然是對象a,那么為什么對象a中會有user,因為你已經復制了一份Fn函數到對象a中,用了new關鍵字就等同于復制了一份。

更新一個小問題當this碰到return時

function fn() { this.user = '追夢子'; return {}; } var a = new fn; console.log(a.user); //undefined

再看一個

function fn() { this.user = '追夢子'; return function(){}; } var a = new fn; console.log(a.user); //undefined

再來

function fn() { this.user = '追夢子'; return 1; } var a = new fn; console.log(a.user); //追夢子 function fn() { this.user = '追夢子'; return undefined; } var a = new fn; console.log(a.user); //追夢子

什么意思呢?

如果返回值是一個對象,那么this指向的就是那個返回的對象,如果返回值不是一個對象那么this還是指向函數的實例。

function fn() { this.user = '追夢子'; return undefined; } var a = new fn; console.log(a); //fn {user: "追夢子"}

還有一點就是雖然null也是對象,但是在這里this還是指向那個函數的實例,因為null比較特殊。

function fn() { this.user = '追夢子'; return null; } var a = new fn; console.log(a.user); //追夢子

相關面試題

let n=1 function A() { this.n = 0; } A.prototype.callMe = function () { console.log(this); }; let a = new A(); document.addEventListener("click", a.callMe); //undefined 這里調用callMe的實際是document,加監聽器時沒有調用函數 document.addEventListener("click", () => { a.callMe(); }); //0 document.addEventListener("click", function () { a.callMe(); }); //0

35、從URL輸入到頁面展現發生了什么?

1、域名解析。通過域名查找IP地址。可以從瀏覽器緩存,操作系統緩存,路由緩存,ISP的DNS服務器,根服務器中進行查找。
2、tcp三次握手
3、發送HTTP請求
4、服務器處理請求并返回HTTP報文
5、瀏覽器解析渲染頁面。解析HTML生成DOM樹,解析CSS生成CSSOM,結合DOM樹和CSSOM生成Render樹,重繪,重排。
6、tcp四次揮手

36、JS垃圾回收

標記清除

js中最常用的垃圾收集方式是標記清楚。當變量進入環境(例如,在函數中聲明一個變量)時,就將這個變量標記為“進入環境”。從邏輯上講,永遠不能釋放進入環境的變量所占用的內存,因為只要執行流進入相應的環境,就可能會用到他們。而當變量離開環境時,則將其標記為“離開環境”。

可以使用任何方式來標記變量。比如,可以通過翻轉某個特殊的位來記錄一個變量何時進入環境,或者使用一個“進入環境的”變量列表及一個“離開環境的”變量列表來跟蹤哪個變量發生變化。

垃圾收集器在運行的時候會給存儲在內存中的所有變量都加上標記(當然,可以使用任何標記方式)。然后,它會去掉環境中的變量以及被環境中的變量引用的變量標記。而在此之后再被加上標記的變量將被視為準備刪除的變量,原因是環境中的變量已經無法訪問到這些變量了。最后,垃圾收集器完成內存除工作,銷毀那些帶標記的值并回收他們所占用的內存空間。

引用計數(不常見)

引用計數的含義是跟蹤記錄每個值被引用的次數。當聲明了一個變量并將一個引用類型值賦給該變量時,則這個值的引用次數就是1。如果同一個值又被賦給另一個變量,則該值的引用次數加1.相反,如果包含對這個值引用的變量又取的了另一個值,則這個值的引用次數減1.當這個值的引用次數變成0時,則說明沒有辦法再訪問這個值了,因而就可以將其占用的內存空間收回來。這樣,當垃圾收集器下次再運行時,它就會釋放那些引用次數為零的值所占用的內存。

用引用計數法會存在內存泄露,下面來看原因:

function problem() { var objA = new Object(); var objB = new Object(); objA.someOtherObject = objB; objB.anotherObject = objA; }
  • 設置undefined不會被垃圾回收,設置null會

什么是?

1作用:聲明文檔的解析類型(document.compatMode),避免瀏覽器的怪異模式。

document.compatMode:
BackCompat:怪異模式,瀏覽器使用自己的怪異模式解析渲染頁面。
CSS1Compat:標準模式,瀏覽器使用W3C的標準解析渲染頁面。

BackCompat:標準兼容模式關閉。瀏覽器客戶區寬度是document.body.clientWidth;CSS1Compat:標準兼容模式開啟。 瀏覽器客戶區寬度是document.documentElement.clientWidth。

? 這個屬性會被瀏覽器識別并使用,但是如果你的頁面沒有DOCTYPE的聲明,那么compatMode默認就是BackCompat,

瀏覽器按照自己的方式解析渲染頁面,那么,在不同的瀏覽器就會顯示不同的樣式。

如果你的頁面添加了那么,那么就等同于開啟了標準模式,那么瀏覽器就得老老實實的按照W3C的

標準解析渲染頁面,這樣一來,你的頁面在所有的瀏覽器里顯示的就都是一個樣子了。

這就是的作用。

2 使用:

2.1 使用也很簡單,就是在你的html頁面的第一行添加""一行代碼就可以了

2.2 jsp的話,添加在<%@ page %>的下一行。

2.3 不用區分大小寫

37、盒模型

IE盒模型

定義的width=content實際寬度+padding+border

可以通過box-sizing屬性設置為border-box使用這種IE盒模型

W3C標準盒模型

盒模型的總寬度為:margin+padding+border+定義的width

此處定義width,就是實際的content的寬度。box-sizing的默認屬性content-box,即設置為W3C標準盒模型;

IE盒模型和W3C標準盒模型的兼容性

對于盒模型的優先如何選用?前面有提到,除了一些非常特殊的場合之外,我們很少使用box-sizing:border-box去調用IE盒模型,而是默認設置box-sizing:content-box使用W3C標準盒模型,這樣可以避免多個瀏覽器對同一頁面的不兼容。

38、跨域

什么是跨域?

跨域是指從一個域名去請求另一個域名的資源,嚴格來說,只要域名,協議,端口任何一個不同,就視為跨域。

同源策略限制的具體表現是什么?

(1)coikie、LocalStorage和Index DB 無法讀取
(2)Dom 無法獲得
(3)AJAX請求不能發送

JS中自帶跨域技能的標簽是什么 ?

JS中有兩個神奇的標簽,從出生起就自帶跨域技能,就是和

跨域解決方法

【1】設置document.domain解決無法讀取非同源網頁的 Cookie問題

因為瀏覽器是通過document.domain屬性來檢查兩個頁面是否同源,因此只要通過設置相同的document.domain,兩個頁面就可以共享Cookie(此方案僅限主域相同,子域不同的跨域應用場景。)

【2】跨文檔通信 API:window.postMessage()

調用postMessage方法實現父窗口http://test1.com向子窗口http://test2.com發消息(子窗口同樣可以通過該方法發送消息給父窗口)

它可用于解決以下方面的問題:

頁面和其打開的新窗口的數據傳遞
多窗口之間消息傳遞
頁面與嵌套的iframe消息傳遞
上面三個場景的跨域數據傳遞

// 父窗口打開一個子窗口 var openWindow = window.open('http://test2.com', 'title');// 父窗口向子窗口發消息(第一個參數代表發送的內容,第二個參數代表接收消息窗口的url) openWindow.postMessage('Nice to meet you!', 'http://test2.com');

調用message事件,監聽對方發送的消息

// 監聽 message 消息 window.addEventListener('message', function (e) {console.log(e.source); // e.source 發送消息的窗口console.log(e.origin); // e.origin 消息發向的網址console.log(e.data); // e.data 發送的消息 },false);
【3】JSONP

JSONP 是服務器與客戶端跨源通信的常用方法。最大特點就是簡單適用,兼容性好(兼容低版本IE),缺點是只支持get請求,不支持post請求。

核心思想:網頁通過添加一個

①原生實現:

<script src="http://test.com/data.php?callback=dosomething"></script> // 向服務器test.com發出請求,該請求的查詢字符串有一個callback參數,用來指定回調函數的名字// 處理服務器返回回調函數的數據 <script type="text/javascript">function dosomething(res){// 處理獲得的數據console.log(res.data)} </script>

② jQuery ajax:

$.ajax({url: 'http://www.test.com:8080/login',type: 'get',dataType: 'jsonp', // 請求方式為jsonpjsonpCallback: "handleCallback", // 自定義回調函數名data: {} });

③ Vue.js:

this.$http.jsonp('http://www.domain2.com:8080/login', {params: {},jsonp: 'handleCallback' }).then((res) => {console.log(res); })

【4】CORS

CORS 是跨域資源分享(Cross-Origin Resource Sharing)的縮寫。它是 W3C 標準,屬于跨源 AJAX 請求的根本解決方法。

1、普通跨域請求:只需服務器端設置Access-Control-Allow-Origin

2、帶cookie跨域請求:前后端都需要進行設置

【前端設置】根據xhr.withCredentials字段判斷是否帶有cookie

①原生ajax

var xhr = new XMLHttpRequest(); // IE8/9需用window.XDomainRequest兼容// 前端設置是否帶cookie xhr.withCredentials = true;xhr.open('post', 'http://www.domain2.com:8080/login', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('user=admin');xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {alert(xhr.responseText);} };

② jQuery ajax

$.ajax({url: 'http://www.test.com:8080/login',type: 'get',data: {},xhrFields: {withCredentials: true // 前端設置是否帶cookie},crossDomain: true, // 會讓請求頭中包含跨域的額外信息,但不會含cookie });

39、requestAnimationFrame和setTimeout()作動畫的區別

動畫原理

根據上面的原理我們知道,你眼前所看到圖像正在以每秒60次的頻率刷新,由于刷新頻率很高,因此你感覺不到它在刷新。而動畫本質就是要讓人眼看到圖像被刷新而引起變化的視覺效果,這個變化要以連貫的、平滑的方式進行過渡。 那怎么樣才能做到這種效果呢?

刷新頻率為60Hz的屏幕每16.7ms刷新一次,我們在屏幕每次刷新前,將圖像的位置向左移動一個像素,即1px。這樣一來,屏幕每次刷出來的圖像位置都比前一個要差1px,因此你會看到圖像在移動;由于我們人眼的視覺停留效應,當前位置的圖像停留在大腦的印象還沒消失,緊接著圖像又被移到了下一個位置,因此你才會看到圖像在流暢的移動,這就是視覺效果上形成的動畫。

setTimeout

理解了上面的概念以后,我們不難發現,setTimeout 其實就是通過設置一個間隔時間來不斷的改變圖像的位置,從而達到動畫效果的。但我們會發現,利用seTimeout實現的動畫在某些低端機上會出現卡頓、抖動的現象。 這種現象的產生有兩個原因:

  • setTimeout的執行時間并不是確定的。在Javascript中, setTimeout 任務被放進了異步隊列中,只有當主線程上的任務執行完以后,才會去檢查該隊列里的任務是否需要開始執行,因此 setTimeout 的實際執行時間一般要比其設定的時間晚一些。
  • 刷新頻率受屏幕分辨率屏幕尺寸的影響,因此不同設備的屏幕刷新頻率可能會不同,而 setTimeout只能設置一個固定的時間間隔,這個時間不一定和屏幕的刷新時間相同。

requestAnimationFrame

window.requestAnimationFrame() 這個方法是用來在頁面重繪之前,通知瀏覽器調用一個指定的函數。這個方法接受一個函數為參,該函數會在重繪前調用。

與setTimeout相比,requestAnimationFrame最大的優勢是**由系統來決定回調函數的執行時機。**具體一點講,如果屏幕刷新率是60Hz,那么回調函數就每16.7ms被執行一次,如果刷新率是75Hz,那么這個時間間隔就變成了1000/75=13.3ms,換句話說就是,requestAnimationFrame的步伐跟著系統的刷新步伐走。它能保證回調函數在屏幕每一次的刷新間隔中只被執行一次,這樣就不會引起丟幀現象,也不會導致動畫出現卡頓的問題。

這個API的調用很簡單,如下所示:

var progress = 0; //回調函數 function render() {progress += 1; //修改圖像的位置if (progress < 100) {//在動畫沒有結束前,遞歸渲染window.requestAnimationFrame(render);} } //第一幀渲染 window.requestAnimationFrame(render);

除此之外,requestAnimationFrame還有以下兩個優勢:

  • CPU節能:使用setTimeout實現的動畫,當頁面被隱藏或最小化時,setTimeout 仍然在后臺執行動畫任務,由于此時頁面處于不可見或不可用狀態,刷新動畫是沒有意義的,完全是浪費CPU資源。而requestAnimationFrame則完全不同,當頁面處理未激活的狀態下,該頁面的屏幕刷新任務也會被系統暫停,因此跟著系統步伐走的requestAnimationFrame也會停止渲染,當頁面被激活時,動畫就從上次停留的地方繼續執行,有效節省了CPU開銷。

  • 函數節流:在高頻率事件(resize,scroll等)中,為了防止在一個刷新間隔內發生多次函數執行,使用requestAnimationFrame可保證每個刷新間隔內,函數只被執行一次,這樣既能保證流暢性,也能更好的節省函數執行的開銷。一個刷新間隔內函數執行多次時沒有意義的,因為顯示器每16.7ms刷新一次,多次繪制并不會在屏幕上體現出來。

40、JS 中對變量類型的五種判斷方法

方法一:使用typeof檢測

當需要變量是否是number,string,boolean

,function,undefined,json類型時,可以使用typeof進行判斷;其他變量是判斷不出類型的,包括null。

typeof是區分不出array和json類型的,因為使用typeof這個變量時,array和json類型輸出的都是object

方法二:使用instance檢測

instanceof 運算符與 typeof 運算符相似,用于識別正在處理的對象的類型。與 typeof 方法不同的是,instanceof 方法要求開發者明確地確認對象為某特定類型

方法三:使用constructor檢測

constructor本來是原型對象上的屬性,指向構造函數。但是根據實例對象尋找屬性的順序,若實例對象上沒有實例屬性或方法,就去原型鏈上尋找,因此,實例對象也是能使用constructor屬性的

因為undefined和null沒有constructor屬性,所以不能使用constructor判斷

方法四:使用Object.prototype.toString.call

Object.prototype.toString.call(變量)輸出的是一個字符串,字符串里有一個數組,第一個參數是Object,第二個參數就是這個變量的類型,而且,所有變量的類型都檢測出來了,我們只需要取出第二個參數即可。或者可以使用Object.prototype.toString.call(arr)=="object Array"來檢測變量arr是不是數組。

41、對promise中resolve()的理解

可以這樣理解,在新建 promise 的時候就傳入了兩個參數

這兩個參數用來標記 promise的狀態的,這兩個參數是兩個方法,并且這兩個參數可以隨意命名,我這里的使用的是omg 也不影響使用

用于表示 promise 的狀態

到執行到 resolve()這個方法的時候,就改變promise的狀態為

fullfiled ,當狀態為 fuulfiled的時候就可以執行.then()

當執行到 reject() 這個方法的時候,就改變 promise 的狀態為

reject,當 promise 為reject 就可以.catch() 這個promise了

然后這兩個方法可以帶上參數,用于.then() 或者 .catch() 中使用。

所以這兩個方法不是替代,或者是執行什么,他們的作用就是 用于改變

promise 的狀態。

然后,因為狀態改變了,所以才可以執行相應的 .then() 和 .catch()操作。

42、DNS請求順序

當一個用戶在地址欄輸入www.taobao.com時,DNS解析有大致十個過程,如下:

  • 瀏覽器先檢查自身緩存中有沒有被解析過的這個域名對應的ip地址,如果有,解析結束。同時域名被緩存的時間也可通過TTL屬性來設置。

  • 如果瀏覽器緩存中沒有(專業點叫還沒命中),瀏覽器會檢查操作系統緩存中有沒有對應的已解析過的結果。而操作系統也有一個域名解析的過程。在windows中可通過c盤里一個叫hosts的文件來設置,如果你在這里指定了一個域名對應的ip地址,那瀏覽器會首先使用這個ip地址。

  • 但是這種操作系統級別的域名解析規程也被很多黑客利用,通過修改你的hosts文件里的內容把特定的域名解析到他指定的ip地址上,造成所謂的域名劫持。所以在windows7中將hosts文件設置成了readonly,防止被惡意篡改。

  • 如果至此還沒有命中域名,才會真正的請求本地域名服務器(LDNS)來解析這個域名,這臺服務器一般在你的城市的某個角落,距離你不會很遠,并且這臺服務器的性能都很好,一般都會緩存域名解析結果,大約80%的域名解析到這里就完成了。

  • 如果LDNS仍然沒有命中,就直接跳到Root Server 域名服務器請求解析

  • 根域名服務器返回給LDNS一個所查詢域的主域名服務器(gTLD Server,國際頂尖域名服務器,如.com .cn .org等)地址

  • 此時LDNS再發送請求給上一步返回的gTLD

  • 接受請求的gTLD查找并返回這個域名對應的Name Server的地址,這個Name Server就是網站注冊的域名服務器

  • Name Server根據映射關系表找到目標ip,返回給LDNS

  • LDNS緩存這個域名和對應的ip

  • LDNS把解析的結果返回給用戶,用戶根據TTL值緩存到本地系統緩存中,域名解析過程至此結束

  • 43、document.write和innerHTML的區別

    document.write只能重繪整個頁面

    innerHTML可以重繪頁面的一部分。

    44、HTMLCollection vs. NodeList

    HTMLCollection與NodeList都是DOM節點的集合,兩者都屬于Collections范疇,兩者的區別在于:

    方法略有差異:HTMLCollection比NodeList多了一個namedItem方法,其他方法保持一致

    包含節點類型不同:NodeList可以包含任何節點類型,HTMLCollection只包含元素節點(ElementNode)

    當返回多個節點(如:getElementByTagName)或者得到所有子元素(如:element.childNodes)時,Collections就會出現,這時候就有可能返回HTMLCollection或者NodeList

    1、HTMLCollection

    HTMLCollection是以節點為元素的列表,可以憑借索引、節點名稱、節點屬性來對獨立的節點進行訪問。HTML DOM中的Collections是實時變動的,當原始文件變化,Collections也會隨之發生變化。

    • 屬性:length(返回的是列表的長度)

    • 方法1:item(通過序號索引來獲取節點,參數是索引值,超過索引值返回null)

      方法2:namedItem(用名字來返回一個節點,首先搜尋是否有匹配的id屬性,如果沒有就尋找是否有匹配的name屬性,如果都沒有,返回null)

    2、NodeList

    NodeList返回節點的有序集合,DOM中的NodeList也是實時變動的

    • 屬性:length(列表中節點的數量)

    • 方法:item(返回集合中的元素,如果超過范圍返回null)

    HTMLCollection和NodeList的共同點顯而易見:

  • 都是類數組對象,都有length屬性
  • 都有共同的方法:item,可以通過item(index)或者item(id)來訪問返回結果中的元素
  • 都是實時變動的(live),document上的更改會反映到相關對象上(例外:document.querySelectorAll返回的NodeList不是實時的)
  • HTMLCollection和NodeList的區別是:

  • NodeList可以包含任何節點類型,HTMLCollection只包含元素節點(elementNode),elementNode就是HTML中的標簽
  • HTMLCollection比NodeList多一項方法:namedItem,可以通過傳遞id或name屬性來獲取節點信息
  • 45、Node vs Element

    簡單的說就是Node是一個基類,DOM中的Element,Text和Comment都繼承于它。
    換句話說,Element,Text和Comment是三種特殊的Node,它們分別叫做ELEMENT_NODE,
    TEXT_NODE和COMMENT_NODE。

    *所以我們平時使用的html上的元素,即Element,是類型為ELEMENT_NODE的Node。*

    46、與=區別(兩個等號與三個等號)

    1、對于string,number等基礎類型,和=是有區別的
    1)不同類型間比較,==之比較“轉化成同一類型后的值”看“值”是否相等,===如果類型不同,其結果就是不等
    2)同類型比較,直接進行“值”比較,兩者結果一樣

    2、對于Array,Object等高級類型,和=是沒有區別的
    進行“指針地址”比較

    3、基礎類型與高級類型,和=是有區別的
    1)對于==,將高級轉化為基礎類型,進行“值”比較
    2)因為類型不同,===結果為false

    47、使一個函數只調用一次

    export function once (fn) {let called = falsereturn function () {if (!called) {called = truefn.apply(this, arguments)}} }

    48、生成/獲取緩存了的函數

    export function cached (fn) {const cache = Object.create(null)return (function cachedFn (str) {const hit = cache[str]return hit || (cache[str] = fn(str))}) }

    49、單頁應用和多頁應用

    多頁應用

    每一次頁面跳轉的時候,后臺服務器都會給返回一個新的html文檔,這種類型的網站也就是多頁網站,也叫做多頁應用。

    為什么多頁應用的首屏時間快?

    首屏時間叫做頁面首個屏幕的內容展現的時間,當我們訪問頁面的時候,服務器返回一個html,頁面就會展示出來,這個過程只經歷了一個HTTP請求,所以頁面展示的速度非常快。

    為什么搜索引擎優化效果好(SEO)?

    搜索引擎在做網頁排名的時候,要根據網頁內容才能給網頁權重,來進行網頁的排名。搜索引擎是可以識別html內容的,而我們每個頁面所有的內容都放在Html中,所以這種多頁應用,seo排名效果好。

    但是它也有缺點,就是切換慢

    因為每次跳轉都需要發出一個http請求,如果網絡比較慢,在頁面之間來回跳轉時,就會發現明顯的卡頓。

    單頁應用

    第一次進入頁面的時候會請求一個html文件,刷新清除一下。切換到其他組件,此時路徑也相應變化,但是并沒有新的html文件請求,頁面內容也變化了。
    原理是:JS會感知到url的變化,通過這一點,可以用js動態的將當前頁面的內容清除掉,然后將下一個頁面的內容掛載到當前頁面上,這個時候的路由不是后端來做了,而是前端來做,判斷頁面到底是顯示哪個組件,清除不需要的,顯示需要的組件。這種過程就是單頁應用,每次跳轉的時候不需要再請求html文件了。

    我是單頁應用

    為什么頁面切換快?

    頁面每次切換跳轉時,并不需要做html文件的請求,這樣就節約了很多http發送時延,我們在切換頁面的時候速度很快。

    缺點:首屏時間慢,SEO差

    單頁應用的首屏時間慢,首屏時需要請求一次html,同時還要發送一次js請求,兩次請求回來了,首屏才會展示出來。相對于多頁應用,首屏時間慢。
    SEO效果差,因為搜索引擎只認識html里的內容,不認識js的內容,而單頁應用的內容都是靠js渲染生成出來的,搜索引擎不識別這部分內容,也就不會給一個好的排名,會導致單頁應用做出來的網頁在百度和谷歌上的排名差。

    有這些缺點,為什么還要使用Vue呢?

    Vue還提供了一些其它的技術來解決這些缺點,比如說服務器端渲染技術(我是SSR),通過這些技術可以完美解決這些缺點,解決完這些問題,實際上單頁面應用對于前端來說是非常完美的頁面開發解決方案。

    50、JS模塊化

    模塊化進化史




    1、commonJS規范

    基本語法:

    //暴露模塊 module.exports=value exports.xxx=value //引入模塊 require(xx)

    在服務器端node.js可以直接使用

    但在瀏覽器端必須用webpack/Browserify打包編譯

    2、AMD規范(Asynchronous Module Definition(異步模塊定義))

    專門用于瀏覽器端, 模塊的加載是異步的

    基本語法:

    //定義沒有依賴的模塊 define(function(){return 模塊 }) //定義有依賴的模塊 define(['module1', 'module2'], function(m1, m2){return 模塊 }) //導入使用模塊 require(['module1', 'module2'], function(m1, m2){使用m1/m2 })

    用require.js實現

    export var firstName = 'Michael'; export var lastName = 'Jackson'; export var year = 1958;//分別暴露 var firstName = 'Michael'; var lastName = 'Jackson'; var year = 1958;//整體暴露 export {firstName, lastName, year};

    這種情況下import命令接受一對大括號,里面指定要從其他模塊導入的變量名。大括號里面的變量名,必須與被導入模塊(profile.js)對外接口的名稱相同。

    如果想為輸入的變量重新取一個名字,import命令要使用as關鍵字,將輸入的變量重命名。

    import { lastName as surname } from './profile.js';

    使用export default命令,可以為模塊指定默認輸出。

    export default function () {//默認暴露console.log('foo'); }

    其他模塊加載該模塊時,import命令可以為該匿名函數指定任意名字。

    import customName from './export-default';

    要想在瀏覽器端實現,要先用Babel將ES6編譯成ES5的CommomJS規范的代碼,然后再用Browserify編譯

    總結

    以上是生活随笔為你收集整理的前端知识总结(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    欧美大jb| 亚洲国产一二三 | 91精品国产91 | 欧美激情第28页 | 免费看成人片 | 青青草国产精品视频 | 婷婷色在线资源 | 日本韩国精品在线 | 国产精品久久久久久欧美 | 91中文字幕 | 亚洲一区美女视频在线观看免费 | 黄色免费在线视频 | 亚洲国产一二三 | 欧洲一区二区在线观看 | 国产亚洲欧美一区 | 涩涩资源网 | 97免费中文视频在线观看 | 国产精品一区二区在线观看免费 | aaa免费毛片 | 久久综合九色99 | 国产精品刺激对白麻豆99 | 日韩电影在线观看中文字幕 | 国产精品6999成人免费视频 | 成人av在线资源 | 亚洲视频免费在线 | av中文字幕网址 | 久久综合狠狠狠色97 | 99在线高清视频在线播放 | 91精品在线观看入口 | 欧美最猛性xxxx | 国产精品一区二区久久精品爱涩 | 亚洲精品18日本一区app | 美女久久99| 天天干天天综合 | 成人在线视频论坛 | 99久久精品国产亚洲 | www日韩| 成人av免费看 | 伊人一级| 日韩免费一区二区 | 综合久久一本 | 99精品视频在线观看视频 | 天天操天天射天天添 | 精品久久久久久亚洲综合网 | 日韩手机在线 | 五月天九九 | 96精品视频 | av在线亚洲天堂 | 久草在线最新视频 | 精品视频99 | 97在线视频免费观看 | av中文字幕网 | 麻豆精品视频在线观看免费 | 国产精品久久久久久久免费 | 伊人导航 | 国产精品大片免费观看 | 亚洲婷婷丁香 | 亚洲九九九在线观看 | 麻豆影视在线免费观看 | 激情五月综合 | 国产一级大片在线观看 | 亚洲欧洲av在线 | 伊人天天狠天天添日日拍 | 成人网在线免费视频 | 久久成熟 | 黄色免费视频在线观看 | www.黄色在线 | 久久久91精品国产一区二区精品 | 国产一级电影网 | 在线免费看黄色 | 国产精品精品国产婷婷这里av | 天天射天天干天天 | 久久免费成人网 | 亚洲免费资源 | 首页av在线 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 97在线观看免费高清完整版在线观看 | 99热最新地址 | 成年美女黄网站色大片免费看 | 久久九九国产视频 | 久久国产精品二国产精品中国洋人 | 在线岛国av| 91手机电影 | 伊人久久婷婷 | 亚洲一区二区视频 | 国产精品一区二区在线观看免费 | 久久久久久久久久久免费 | 国产美女被啪进深处喷白浆视频 | 中文字幕 国产视频 | 九九视频精品免费 | 国产小视频福利在线 | 欧美a级在线 | 在线成人高清电影 | 日韩欧美综合精品 | 视频三区| 狠狠88综合久久久久综合网 | 久久久久久免费网 | 久久精品中文字幕免费mv | 日韩高清不卡一区二区三区 | 美女视频久久 | 成人一级免费电影 | 日本系列中文字幕 | 国产精品成人自产拍在线观看 | 国产午夜剧场 | 99热在线国产 | 黄色综合 | 91自拍视频在线观看 | 天天干天天插伊人网 | 欧美亚洲另类在线视频 | 99色在线播放| av电影一区二区三区 | 国产一级片网站 | 最近免费中文字幕 | 一区二区三区电影大全 | 91精品小视频| 91手机电视 | 99热这里有精品 | 亚洲97在线 | 亚洲视频第一页 | 精品国产区在线 | 91chinesexxx| 97天堂网| 精品久久久久久久久久久久久久久久久久 | 欧美三级高清 | 久久不卡日韩美女 | 青青河边草观看完整版高清 | 91成人网在线 | 色综合a| 亚洲精品456在线播放乱码 | 久久精品国产一区二区三 | 成人av久久 | 狠狠色免费 | 欧洲精品视频一区二区 | 人人爽网站 | 97精品国产一二三产区 | 日韩欧美黄色网址 | av高清不卡 | 麻豆视频免费入口 | 99久久精品国产一区二区成人 | 欧美午夜寂寞影院 | 久久综合九色综合久99 | 免费av黄色 | 国产精品九九久久久久久久 | 1000部国产精品成人观看 | 久久久久久久久久久网 | 久久久久国产精品一区二区 | 久草影视在线 | 色婷婷97| 久久超级碰视频 | 91色吧 | 精品国产一二区 | 在线日韩精品视频 | 美女国产精品 | 国产无套精品久久久久久 | 国产一区二区在线观看免费 | 久久视频国产 | 人人添人人澡 | 久久久国产精品免费 | 黄色毛片一级 | 伊人五月天综合 | 欧美电影黄色 | 婷婷伊人综合亚洲综合网 | 一级片免费观看 | 毛片随便看 | 国产一区在线免费观看视频 | 00av视频 | 成人wwwxxx视频 | 色婷婷99 | 欧美激情在线网站 | 久久久久亚洲国产 | 日韩欧美精品在线视频 | 有码视频在线观看 | 亚洲永久精品国产 | 国产亲近乱来精品 | 久久只有精品 | 日本中文字幕系列 | 久久精品久久久精品美女 | 精品国产一区二区三区久久久 | 亚洲天堂网在线观看视频 | 狠狠夜夜 | 一级精品视频在线观看宜春院 | 在线电影 你懂得 | 在线黄色观看 | 国内精品久久久久久久久久久久 | 日韩在线观看影院 | 99久久99久久精品免费 | 国际精品久久 | 亚洲国产精品成人综合 | 黄色免费观看 | 亚洲乱码久久久 | 中文字幕之中文字幕 | 香蕉视频在线免费 | 丁香 久久 综合 | 成年人电影免费在线观看 | 91成人久久 | av电影中文字幕在线观看 | 中文字幕一区二区三区久久 | 天天色视频 | 亚洲精品午夜久久久久久久久久久 | 在线激情小视频 | 麻豆传媒在线免费看 | www.成人久久 | www.久久婷婷 | 爱干视频 | 91精品国产一区 | 成人手机在线视频 | 国产精品自在欧美一区 | 欧美日韩久 | 国产无区一区二区三麻豆 | 天天操比 | wwwww.国产 | 免费看色视频 | 91精品夜夜 | 97精品国产一二三产区 | 波多野结衣一区三区 | 久久黄色网| 免费在线观看午夜视频 | 成年人免费在线观看网站 | 极品国产91在线网站 | 日韩欧美精品在线视频 | 免费观看视频的网站 | av观看网站| 久久精品99久久 | 亚洲精品视频www | 激情亚洲综合在线 | 久久任你操 | 亚洲一区二区黄色 | 亚洲精品乱码久久久久久蜜桃动漫 | 久久精品毛片基地 | 婷婷激情综合五月天 | 日日天天干 | 久草视频手机在线 | 91在线永久 | 国产亚洲精品久久久久久电影 | 人人看黄色 | 色婷婷99 | 久草综合视频 | 欧美专区亚洲专区 | 亚洲黄色av一区 | 欧美一区二区精品在线 | 极品中文字幕 | 97成人在线| 91在线最新| 狠狠躁日日躁夜夜躁av | 国产黄视频在线观看 | 国产精品免费观看久久 | 丁香av在线 | 丁香六月五月婷婷 | 黄色大片视频网站 | 中国精品少妇 | 99久久免费看 | 亚洲精品毛片一级91精品 | 国产精品12 | 欧美俄罗斯性视频 | 黄色精品网站 | 伊人狠狠| 中文字幕视频三区 | 波多野结衣最新 | 91插插视频 | 日韩久久久久久久久久久久 | 国产免费亚洲高清 | 久久精品女人毛片国产 | 91大神dom调教在线观看 | 999久久久久久久久6666 | 91人人澡人人爽 | 久久成年人视频 | 久久福利小视频 | 精久久久久 | 91网站在线视频 | 天天操婷婷 | 亚洲综合色婷婷 | 天天干国产 | 黄色天堂在线观看 | 99精品视频免费 | 亚洲国产精久久久久久久 | 国产va精品免费观看 | 久久久久久久国产精品影院 | 国内精品久久久久久久久久久久 | 国产精品不卡在线观看 | 高清久久久久久 | 97精品国自产拍在线观看 | 久久久精品久久日韩一区综合 | 九九色在线观看 | 成人午夜精品福利免费 | 国产精品久久久久久一区二区三区 | 国产在线精品二区 | 91精品国产成人观看 | 在线观看亚洲精品视频 | 欧美另类激情 | 黄色毛片电影 | 99久热在线精品视频 | 中文字幕在线观看免费高清完整版 | 成人在线小视频 | 91精彩视频在线观看 | 久久99精品国产99久久6尤 | 日韩精品一区二区三区水蜜桃 | 96精品视频| 欧美巨大荫蒂茸毛毛人妖 | 日韩手机在线观看 | 青青看片 | 99欧美| 不卡的av在线播放 | 国产精品一区二区三区观看 | 在线观看色网站 | 激情久久综合 | 91久久黄色 | 97av视频在线| 综合国产视频 | 亚洲国产高清在线观看视频 | 久久av福利 | av电影免费看 | 午夜电影久久久 | www.com.黄| 99久久日韩精品免费热麻豆美女 | 国产尤物在线观看 | 成人免费在线电影 | 日韩在线一级 | 韩国一区二区三区视频 | 精品国产免费看 | 欧美日韩在线精品一区二区 | 91亚洲精品久久久 | 一区二区三区在线免费观看 | 91精品视屏 | 91亚洲在线观看 | 黄色免费看片网站 | 91一区二区三区在线观看 | 久久久久久久99精品免费观看 | 中文字幕免费观看视频 | 欧美大片aaa | 欧美日韩免费观看一区二区三区 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天操综合网站 | 久草国产在线观看 | 国产又粗又猛又黄又爽 | 黄色日本免费 | 天堂久久电影网 | 精品免费99久久 | 久热这里有精品 | 久久精品中文字幕一区二区三区 | 日本系列中文字幕 | 亚洲精品资源在线 | www.国产高清 | 日韩av区| 91在线永久 | 美女免费视频一区二区 | 亚洲爱av | 免费黄av| 亚洲 av网站 | av中文电影 | 91精品高清 | 91漂亮少妇露脸在线播放 | 97**国产露脸精品国产 | 人人爽人人片 | 午夜999| a视频免费在线观看 | 欧美亚洲国产一卡 | 黄色在线观看www | 玖玖色在线观看 | 国产精品久久久久影视 | 国产精品一区二区 91 | 最近中文字幕高清字幕在线视频 | 久久综合偷偷噜噜噜色 | 国产精品免费在线播放 | 一区久久久 | 成人av在线网 | 欧美国产不卡 | av丝袜天堂 | 字幕网在线观看 | 国产伦理久久精品久久久久_ | 午夜成人免费电影 | 成人九九视频 | 天天干天天射天天爽 | 在线观看网站你懂的 | 国产成人久久精品亚洲 | 国产第页 | 日韩欧美视频一区二区 | 狠狠色狠狠色 | 亚洲精品久久久久久中文传媒 | 天天干天天做天天爱 | 国产剧情久久 | 在线亚洲激情 | 91在线网址 | 久久精品久久99 | 日本黄区免费视频观看 | 天天射天天色天天干 | 国产亚洲久久 | 91视频在线观看免费 | 欧洲视频一区 | 精品国产伦一区二区三区免费 | 亚洲成a人片77777潘金莲 | 天天草天天操 | 日韩一区二区三区免费视频 | 精品久久国产一区 | 国产精品久久久毛片 | 亚洲激情在线观看 | 美女久久久久久久久久 | 99re8这里有精品热视频免费 | 在线观看香蕉视频 | 天天色天天上天天操 | 亚洲播放一区 | 国产色一区| 六月丁香综合网 | 日韩精品视频免费在线观看 | 丁香婷婷综合五月 | 最新一区二区三区 | 一级成人网 | www,黄视频| 日韩理论电影在线 | 亚洲婷久久| 欧美亚洲免费在线一区 | 99视频免费看 | 国产精品女人久久久 | 国产91免费在线观看 | 日韩在线观看精品 | a视频在线观看免费 | 激情黄色一级片 | 在线免费观看av网站 | 中文字幕av网站 | 成人福利在线播放 | 免费欧美高清视频 | 日韩电影在线看 | 欧美一区二区精美视频 | 色婷婷骚婷婷 | 丁香激情综合 | 欧美在线不卡一区 | 国产系列 在线观看 | 久久久久久久久久网 | 亚洲精品无 | 精品视频在线播放 | 黄色国产区| 天天操夜夜想 | 久久久久国产一区二区三区四区 | 久久www免费人成看片高清 | 午夜免费福利视频 | 国产日韩欧美在线看 | 日韩高清在线一区二区 | 日韩av片无码一区二区不卡电影 | 免费av片在线 | 九九热1| 免费观看www小视频的软件 | 天天天操天天天干 | av中文字幕在线播放 | 夜色成人网 | 99久久久国产精品 | 国产精品毛片 | av成人资源 | 天天添夜夜操 | 人人爽人人爽av | 国产亚洲精品美女 | 日韩丝袜在线观看 | 日韩精选在线 | 免费午夜视频在线观看 | 日韩毛片久久久 | 亚洲伊人网在线观看 | 日韩成人在线一区二区 | 亚洲精品大片www | av网站在线免费观看 | 国产一区麻豆 | 人人超碰人人 | 精品亚洲视频在线 | 欧美精品亚洲精品日韩精品 | 国产精品亚洲片夜色在线 | 亚洲专区在线视频 | 国产黄av| 伊人黄色网 | 色av资源网| 国产96在线 | 丰满少妇在线观看网站 | 午夜av免费在线观看 | 中文字幕在线播放视频 | 亚洲一区二区视频在线播放 | 国产999精品久久久久久绿帽 | 日韩二区在线播放 | 亚洲精品 在线视频 | 欧美精品久久久久性色 | 高清日韩一区二区 | 精品黄色在线观看 | 麻豆一区在线观看 | 久久色亚洲| 日日爱999 | 日韩av免费一区二区 | av一级在线观看 | 国产美女视频免费观看的网站 | 人人澡人人草 | av888.com| 国产成人精品一区二 | 久久国语 | 在线观看免费成人av | 久草视频免费在线播放 | 在线观看91久久久久久 | 欧美视频网址 | 韩日精品在线 | 久久精品久久精品久久 | 色综合天天狠天天透天天伊人 | 99久久久成人国产精品 | 中文字幕在线免费观看视频 | 日韩欧美在线播放 | 91九色精品| 手机在线中文字幕 | 国产一区二区在线观看视频 | 欧美日韩视频在线 | av丝袜在线 | 久久在线精品视频 | 久久久久久免费视频 | 91久久黄色 | 日产乱码一二三区别在线 | 91精品毛片| 人人天天夜夜 | 国语对白少妇爽91 | 欧美最猛性xxxxx亚洲精品 | www免费在线观看 | 精品视频www | 一区二区三区免费看 | 亚洲精品日韩一区二区电影 | 开心综合网 | 成人免费xyz网站 | 日韩免费在线视频观看 | 国产一区二区三区高清播放 | 99爱国产精品 | 91成人精品国产刺激国语对白 | 国产中文字幕在线免费观看 | 黄色a大片 | 国产亚洲精品中文字幕 | 亚洲国产日韩欧美 | 国产精品18久久久久久久网站 | 在线播放国产精品 | 伊香蕉大综综综合久久啪 | 亚洲精品日韩在线观看 | 国产精品九九九九九 | 在线黄色国产电影 | 91网页版在线观看 | 欧美日韩高清一区二区三区 | 中文字幕高清 | 亚洲精品动漫成人3d无尽在线 | 亚洲成av人电影 | 97成人在线视频 | 欧美性黄网官网 | 中文字幕免费 | 日韩精品久久久久久 | 美女黄频免费 | 久久无码av一区二区三区电影网 | 91热爆在线观看 | 国产精品久久久久久一二三四五 | 欧美日韩二区在线 | 欧美激情综合色 | 天天激情综合 | 亚洲国产成人精品久久 | 天天干天天干天天 | 黄色天堂在线观看 | 69亚洲乱 | 97电影院在线观看 | 九九涩涩av台湾日本热热 | 成人91免费视频 | 欧美一区二区三区免费观看 | 婷婷开心久久网 | 国产在线黄 | 日韩欧美在线观看一区二区 | 在线亚州| 国产精品美女久久久久久免费 | 久久99精品国产麻豆宅宅 | 久久久96| 中文字幕制服丝袜av久久 | www.亚洲| 国产精品片| 国产精品久久久久久久久久三级 | 亚洲成人黄色网址 | 91麻豆精品国产91久久久更新时间 | 日韩r级电影在线观看 | 欧美精品乱码久久久久 | 国产91小视频 | 中文字幕丝袜制服 | 国产成人一区二区三区久久精品 | 一级片在线 | 日韩欧美视频在线观看免费 | 国产精品成人av在线 | 日韩视频免费在线观看 | 久久一视频 | 97精品久久人人爽人人爽 | 三级av免费看 | 在线国产一区二区三区 | 美女视频黄免费的 | 五月天中文字幕mv在线 | 天天色天天综合网 | 99精品久久精品一区二区 | 91精品999 | 国产伦精品一区二区三区… | 一区二区三区在线看 | www.久久久com| 高清久久久 | 久久黄色免费视频 | 日韩电影在线观看一区二区 | 亚洲闷骚少妇在线观看网站 | 久久视频一区 | 国产精品白浆 | 精品国产一区二区三区蜜臀 | 欧美久久久久久久久久久久 | 中文字幕精品一区二区精品 | 在线免费国产视频 | 五月婷婷中文网 | 狠狠色香婷婷久久亚洲精品 | 日本黄色免费电影网站 | 国产男女无遮挡猛进猛出在线观看 | 99亚洲精品视频 | 欧美久久综合 | 81国产精品久久久久久久久久 | 最近久乱中文字幕 | 中文字幕在线播放一区二区 | 丁香资源影视免费观看 | 人人澡超碰碰97碰碰碰软件 | 毛片播放网站 | 中文字幕日韩电影 | 国产精品丝袜在线 | 免费黄色在线播放 | 国产精品24小时在线观看 | av在线com | 在线看片成人 | 亚洲午夜小视频 | 日本黄区免费视频观看 | 国产精品岛国久久久久久久久红粉 | 欧美精品一区二区免费 | 国产亚洲精品久久久网站好莱 | 超碰在线观看99 | 国产破处精品 | 在线观看av免费 | 亚洲一区天堂 | 黄色网址中文字幕 | 欧美最猛性xxxxx免费 | 国产美女在线精品免费观看 | 欧美另类xxxxx| 99这里只有久久精品视频 | 国产精品久久久久久久久久不蜜月 | 黄色软件网站在线观看 | 亚洲精品视频在线观看免费视频 | 色婷婷久久久 | 欧洲精品码一区二区三区免费看 | 国内三级在线 | 精品国产伦一区二区三区 | 五月天激情在线 | 中文字幕在线免费97 | 狠狠干天天色 | 亚洲精品免费在线观看 | 午夜精品久久一牛影视 | av高清在线观看 | 草久久av | 久久躁日日躁aaaaxxxx | 亚洲综合少妇 | 丁五月婷婷 | 国产精品1区2区3区 久久免费视频7 | 日韩中文免费视频 | 亚州精品一二三区 | 天堂久色 | 日韩大片免费在线观看 | 亚洲视屏在线播放 | 久久av免费| 日本最新一区二区三区 | 韩日三级在线 | 草久中文字幕 | 久久免费国产电影 | 91资源在线观看 | 国产视频每日更新 | 97精品超碰一区二区三区 | 亚洲国产资源 | 久久公开视频 | 国产亚洲欧美在线视频 | 国产免费久久久久 | 国产系列在线观看 | 欧美成人精品在线 | 国产亚洲欧美精品久久久久久 | 国产精品观看在线亚洲人成网 | 97超在线视频 | 天天色 天天 | 日韩欧美成| 亚洲欧洲国产视频 | 久久精品一区二区三区视频 | 亚洲欧美日韩一区二区三区在线观看 | 国产精品18毛片一区二区 | 婷婷av综合 | 国产高清精品在线 | 69av国产| 国产精品久久久久久久久软件 | 97国产在线播放 | 国内精品久久久久久中文字幕 | 亚洲中字幕 | 狠狠狠狠狠狠狠干 | 亚洲美女免费视频 | av一区二区在线观看中文字幕 | 在线观看国产福利片 | 色婷婷中文 | 亚洲观看黄色网 | 手机看片国产日韩 | 福利视频一区二区 | 久久久久综合 | 欧美99精品 | 日韩中文三级 | 97超碰在线播放 | 97人人澡人人爽人人模亚洲 | 操老逼免费视频 | 99久久精品国产欧美主题曲 | 欧美激情综合五月 | 久久精品视频99 | 丝袜一区在线 | 国产丝袜高跟 | 国产第一页在线观看 | 最近中文字幕免费av | 久久午夜鲁丝片 | 男女免费视频观看 | 激情小说 五月 | 最近能播放的中文字幕 | 天天爱天天操天天射 | 天堂网av在线 | 香蕉影视 | 亚洲 av网站 | 久草影视在线观看 | 激情狠狠干| 在线看成人片 | av色图天堂网 | 国产精品久久久999 国产91九色视频 | 国产精品免费视频网站 | 日韩av看片 | 美女福利视频一区二区 | av在线播放亚洲 | 成人久久久久久久久久 | 一本一道久久a久久精品 | 国产美女主播精品一区二区三区 | 亚洲精品麻豆视频 | 久久久久成人精品 | 天天色天天爱天天射综合 | 国内精品中文字幕 | 日韩综合视频在线观看 | 国产精品久久网 | 99在线视频观看 | 九色91av| 97人人模人人爽人人喊网 | 日韩videos高潮hd | 亚洲午夜久久久久久久久久久 | 亚洲91精品 | 激情丁香 | 精品免费99久久 | 国产免码va在线观看免费 | 91精品国产乱码 | 一本一道久久a久久精品蜜桃 | 在线免费观看视频a | av片一区二区 | 亚洲 成人 欧美 | 欧美 激情 国产 91 在线 | 国产 日韩 欧美 中文 在线播放 | 欧美资源在线观看 | 人人爽人人爽人人爽 | 天天激情综合网 | 国内综合精品午夜久久资源 | 国产99久久久国产 | 精品一区二区免费视频 | 高清国产在线一区 | av免费观看高清 | 天天干天天看 | 久久久精品午夜 | ww视频在线观看 | 久久亚洲人 | 亚洲精品欧美成人 | 丁香五月亚洲综合在线 | 在线播放 日韩专区 | www欧美日韩| 国产精品美女久久久久久久久 | 中文在线中文资源 | 韩国中文三级 | 美女免费视频一区 | 日韩视频一区二区三区在线播放免费观看 | 国产精品乱码久久久 | 在线播放av网址 | 久久久久久久网 | www.玖玖玖 | 日韩精品欧美视频 | 国产精品ⅴa有声小说 | av色网站 | 欧美日韩中文国产 | 444av| 日韩在线观看高清 | 超碰电影在线观看 | 国产精品久久一区二区三区, | 精品国产成人 | 国产亚洲精品久久久久久久久久久久 | 国产精品18久久久久久久网站 | 久久久久久久久久久久影院 | 在线免费观看视频你懂的 | 91网在线看 | 91精品久久香蕉国产线看观看 | 国产乱视频 | 91精品免费在线 | 日日爽日日操 | 国产精品99久久久久久人免费 | 一区二区三区国产精品 | 久久国产精品色av免费看 | 国产精品一区久久久久 | 日日日日日 | 在线91播放 | 久草视频在线看 | 日韩啪啪小视频 | 亚洲成a人片77777潘金莲 | 国产午夜精品一区二区三区四区 | 精品人人人人 | 成人免费中文字幕 | 99在线看 | 国产婷婷在线观看 | 精品福利av | 99 久久久久 | 欧美国产亚洲精品久久久8v | 婷婷深爱网 | 国产精品久久久久久久久毛片 | 最近更新好看的中文字幕 | av中文字幕网站 | 久久久国内精品 | 久久久久综合精品福利啪啪 | 久久99精品久久久久婷婷 | 亚洲视频在线看 | 亚洲黄色影院 | 欧美三级免费 | 丁香色综合 | 午夜 免费| 丰满少妇在线观看 | 在线观看中文字幕视频 | 国产精品久久久久999 | 久久免费视频精品 | 国产在线 一区二区三区 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久精品中文字幕免费mv | a在线一区 | 国产乱对白刺激视频不卡 | 91传媒91久久久 | 亚洲码国产日韩欧美高潮在线播放 | 国产在线中文 | 久久久精品一区二区 | 欧美另类z0zx | 亚洲精品三级 | 一区二区三区四区五区在线 | 亚洲va欧美va | 国产精品久久一卡二卡 | 日本天天操| 久久久久成人精品 | 久久久久国产精品一区二区 | 亚洲免费不卡 | 亚洲成人av电影在线 | 天天色天天操综合网 | 婷婷视频 | 日韩大片免费在线观看 | 天堂va在线高清一区 | 日本精品视频在线 | 中文字幕av免费在线观看 | 日韩在线理论 | 欧美日韩成人一区 | 国产精品免费在线视频 | 久久亚洲人 | 麻豆果冻剧传媒在线播放 | 日韩在线高清 | 色中色资源站 | 精品一二三四在线 | 91人人爽人人爽人人精88v | 国产尤物在线视频 | 亚洲视频一 | 亚洲人人射 | 国产精品视频在线看 | av电影一区二区三区 | 久久久久9999亚洲精品 | 成 人 黄 色视频免费播放 | 久久成| av在线免费播放 | 天天爱天天操 | 精品一区二区精品 | 色94色欧美 | 国产精品久久久久久一二三四五 | 日韩电影一区二区三区在线观看 | 久久久91精品国产一区二区精品 | 国产日韩欧美综合在线 | 超碰99在线 | 国产91精品欧美 | 久久老司机精品视频 | 色网站国产精品 | 国产精品久久久久久高潮 | 天天草天天色 | 国产亚洲精品美女久久 | 天天色天天艹 | 91丨九色丨国产女 | 免费视频一二三区 | 久久精品三级 | 国产 中文 日韩 欧美 | 夜添久久精品亚洲国产精品 | 日韩欧美一区二区在线播放 | 99精品国产99久久久久久97 | 亚洲dvd| 国产艹b视频 | 国产剧情一区二区在线观看 | 日韩欧美国产免费播放 | 超碰在线97观看 | 日韩欧美有码在线 | 亚洲国产精品视频在线观看 | 少妇激情久久 | 看v片 | 国产精品 国内视频 | 最近中文字幕大全中文字幕免费 | 91精品婷婷国产综合久久蝌蚪 | 久久久久久高潮国产精品视 | a级国产片 | 在线免费色 | 91综合久久一区二区 | 99r精品视频在线观看 | 国产精品视频你懂的 | 91看毛片| 在线电影av | 国产一级片观看 | 国产精品久久久久久久av大片 | 日韩大片在线观看 | 精品视频不卡 | 久久精品国亚洲 | 麻豆视频免费在线播放 | 国产精品高清在线观看 | 久久99热久久99精品 | 天天综合入口 | 九九日九九操 | 又黄又网站 | 天天操天天操天天爽 | 激情自拍av | 香蕉久草| 午夜精品区 | 日本久久精品视频 | 精品中文字幕在线 | 18岁免费看片 | 中文久久精品 | 97碰碰精品嫩模在线播放 | 日日干影院 | 91视频 - x99av| 玖玖精品视频 | 久久久久国产精品厨房 | 亚洲在线看 | 中文字幕日韩在线播放 | 中文av在线免费观看 | 亚洲激情视频在线 | 国产色资源 | 亚av在线| 久草久热| 麻豆久久久 | 在线观看深夜福利 | 国产久草在线观看 | 在线不卡a| 国产中文在线字幕 | 久久国产午夜精品理论片最新版本 | 亚洲另类交 | 国产不卡免费av | 亚洲伊人色 | 日韩啪啪小视频 | 亚洲精品国产成人 | 免费观看久久久 | 97精品国产手机 | 激情一区二区三区欧美 | 波多野结衣电影久久 | 在线国产小视频 | 国产精品一区二区av | 又爽又黄又无遮挡网站动态图 | 国产综合福利在线 | 西西444www大胆高清图片 | www.久久久.cum| 欧美国产一区二区 | 三级av在线播放 | 99久久99久久免费精品蜜臀 | 91一区二区在线 | 免费三级骚 | 国产一级二级在线播放 | 亚洲精品在 | 日日操操操 | 天天干夜夜爱 | 国产明星视频三级a三级点| 中文字幕在线电影 | av电影在线观看完整版一区二区 | 欧美天堂视频在线 | 亚洲精品字幕在线观看 | 欧美日韩一区二区在线观看 | 操操日 | 在线亚洲小视频 | 天天干一干 | 97偷拍在线视频 | 国产高清黄 | 国产一区视频免费在线观看 | 日本久久免费电影 | 免费在线激情电影 | 精品福利网 | 手机在线永久免费观看av片 | 日韩大片在线播放 | 在线之家免费在线观看电影 | 中文有码在线 | 天天操操操操操 | 欧美一级爽| 91精品在线看 | 一级做a爱片性色毛片www | 91成人精品国产刺激国语对白 | 高潮毛片无遮挡高清免费 | 在线观看日韩 | 久久成人综合 | 91麻豆精品国产91久久久久 | 又污又黄的网站 | 国产成人777777 |