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

歡迎訪問 生活随笔!

生活随笔

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

javascript

【思维导图】前端开发JavaScript-巩固你的JavaScript知识体系

發布時間:2023/12/18 javascript 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【思维导图】前端开发JavaScript-巩固你的JavaScript知识体系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaScript基礎語法

var a = [1, 2, 5]; for(var k in a){console.log(k); // k 為當前元素的下標 } for(var m of a){console.log(m); // m 為當前元素的值 } VM215:3 0 VM215:3 1 VM215:3 2 VM215:6 1 VM215:6 2 VM215:6 5

變量聲明

  • var 聲明一個變量,可賦一個初始值。
  • let 聲明一個塊作用域的局部變量,可賦一個初始值。
  • const 聲明一個塊作用域的只讀命名的常量。
  • 變量的名字又叫做“標識符”,必須以字母、下劃線(_)或者美元符號($)開頭,并且區分大小寫。
  • 若沒有為變量賦初始值,則值默認為undefined
  • 若沒有聲明變量而直接使用,拋出ReferenceError錯誤
  • 當變量值為undefined時,布爾值環境當做false
  • 當變量值為null時,布爾值環境當做false

數據類型

  • Boolean布爾值,true和false
  • null對大小寫敏感
  • undefined空類型,變量未定義時候的值
  • Number數值類型
  • String字符串類型
  • Symbol(ES6新增)表示一種唯一且不可變的數據

字面量

  • 字面量是用來表示如何表達這個值
  • 變量賦值時右邊的都是字面量
  • 數組字面量
  • 布爾字面量
  • 浮點數字面量
  • 對象字面量
  • 整數字面量
  • 正則字面量
  • 字符串字面量

全局變量

代碼:

// ES5var a = 'web';window.a; // 'web'// ES6let b = 'web';window.b; // undefined

注釋

代碼:

// 單行注釋/*多行注釋*/

變量作用域

  • 全局變量:即聲明在函數之外,當前文檔所有地方都可以訪問
  • 局部遍歷:即聲明在函數內部,僅在當前函數內可以訪問

代碼:

// ES5及之前console.log(a); // undefinedvar a = 1;console.log(a); // 1// ES6開始console.log(b); // Uncaught ReferenceError: b1 is not definedlet b = 2;console.log(b); // 2

函數聲明有兩種方式

代碼:

// 函數聲明f(); // 'web'function(){console.log('web');}; // 函數表達式g(); // Uncaught TypeError: g is not a functionvar g = function(){ // 換成 let 聲明也一樣console.log('web');}

常量

  • 使用const來聲明一個只讀的常量
  • const聲明的變量不能直接修改值,但是對于對象和數組,卻是不受保護可以修改的
  • 一個完整的javascript實現由3個部分組成:核心ECMAScript,文檔對象模型DOM,瀏覽器對象模型BOM。
  • JavaScript是一種直譯式腳本語言,是一種動態類型,弱類型,基于原型的語言,內置支持類型。
  • JavaScript具有特點:一種解釋性腳本語言,主要用于向HTML頁面添加交互行為,可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離,
  • 跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行。
  • JavaScript語法區別:區分大小寫,變量是弱類型,結尾的分號可有可無,解釋與java,c和php語言中的注解是相同的,大括號表示代碼塊。
  • 示例{}包含的內容表示一個代碼塊

    代碼:

    if(test1=="red") {test1 = "blue";alert(test1); }

    JavaScript關鍵字:

    break,else,new,var case,finally,return,void catch,for,switch,while continue,function,this,with default,if,throw delete,in,try do,instanceof,typeof

    JavaScript的變量

    在javascript中,變量是存儲信息的容器,變量存在兩種類型的值,即為原始值和引用值。

  • JavaScript的原始類型,即Undefined,Null,Boolean,Number和String型。
  • 字符串String是JavaScript的基本數據類型。
  • 數據類型表示數據的類型,JavaScript語言的每個值都屬于某一種數據類型。
  • JavaScript的數據類型分兩類:值類型(原始值),引用數據類型(引用值)。
  • 值類型:字符串string,數字number,布爾boolean,對空null,未定義undefined,symbol為es6引入的一鐘新的原始數據類型,表示獨一無二的值。
  • 引用數據類型:對象object,數組array,函數function。
  • JavaScript提供typeof運算符用于判斷一個值是否在某種類型的范圍內。
  • Undefined類型只有一個值,即為undefined。
  • 當聲明的變量未初始化時,該變量的默認值是undefined。
  • Null類型只有一個值為null,值undefined實際上是從值null派生來的,所以JavaScript將他們定義為相等的。
  • null與undefined表示這兩個值相等,但含義不同。
  • undefined是聲明了變量但未對其初始化時賦予該變量的值,null表示尚未存在的對象。
  • 代碼:

    console.log( null == undefined); // true
  • Boolean類型的兩個值是true和false。
  • Number類型,所有數學運算返回的都是十進制的結果。
  • Number.MAX_VVALUE和Number.MIN_VALUE,它們定義了Number值集合的外邊界。
  • 如果生成的數值結果大于Number.MAX_VALUE時,將被賦予值Number.POSITIVE_INFINITY,表示不再有Number值。生成的數值小于Number.MIN_VALUE,會被賦予值Number.NEGATIVE_INFINITY,表示不再有Number值。
  • 有表示無窮大的值為Infinity。
  • Number.POSITIVE_INFINITY的值為Infinity,Number.NEGATIVE_INFINITY的值為-Infinity。
  • 使用isFinite()方法判斷參數值是否是有窮的。

  • 特殊的NaN,表示非數。與無窮大一樣,NaN也不能用于算術計算。注意,NaN與自身不相等。
  • 示例:

    console.log(NaN == NaN) // false console.log(isNaN("66")); // false
  • String類型,是唯一沒有固定大小的原始類型,字符串字面量是用雙引號或者單引號聲明。
  • 類型判斷

  • typeof操作符,用于獲取一個變量或者表達式的類型。
  • 返回值:

    undefined,變量是Undefined類型 boolean,變量是Boolean類型的 number,變量是Number類型的 string,變量是String類型的 object,變量是一種引用類型或者Null類型

    示例:

    console.log(typeof 12); // number

    typeof運算符對null的值返回Object。

  • instanceof操作符,用于判斷一個引用類型屬于哪種類型。
  • 示例:

    <script>var a = new Array();if(a instanceof Array) {console.log('a是一個數組類型');}else{console.log('a不是一個數組類型');} </script>

    類型轉換

  • Number變量,將變量轉化為數字類型。
  • String變量,將變量轉化為字符串類型。
  • Boolean變量,將變量轉化為布爾值類型。
  • parseFloat變量,將變量轉化為浮點類型。
  • parseInt變量,將變量轉化為整數類型。
  • 運算符

  • 運算符:賦值運算符,算數運算符,比較運算符,邏輯運算符,一元運算符,二元運算符,三元運算符。
  • 名稱操作符含義
    賦值x = yx = y
    加法賦值x += yx = x + y
    減法賦值x -= yx = x - y
    乘法賦值x *= yx = x * y
    除法賦值x /= yx = x / y
    求余賦值x %= yx = x % y
    求冪賦值x **= yx = x ** y
    左移位賦值x <<= yx = x << y
    右移位賦值x >>= yx = x >> y
    無符號右移位賦值x >>>= yx = x >>> y
    按位與賦值x &= yx = x & y
    按位異或賦值x ^= yx = x ^ y

    示例:

    賦值運算符的符號為=算數運算符:+,-,*,/,%比較運算符:>,>=,<,<=,!=,==,===,!==邏輯運算符: &&,邏輯與,表示表達式前后全為true才能返回true||,邏輯或,表示表達式前后只要有一個true就返回true!,邏輯取反,表示表達式后若為true,則返回false,否則反之。
  • ++自增長,每執行一次自身加1,--自減,每執行一次自身減1.
  • i++,值先參與外部表達式的運算,然后再將自身的值加1。
  • ++i,i先自身的值加1,再參與外部表達式的運算。
  • +=,a+=3等于a=a+3。同理類似。
  • 三元運算符的表達式格式為:條件?正:假
  • 運算符優先級:算數運算符>比較運算符>邏輯運算符>賦值運算符。
    • 算數運算符
    • 比較運算符
    • 邏輯運算符
    • 賦值運算符

    分支循環

  • if-else條件判斷語句
  • switch-case選擇語句
  • for循環語句
  • for-in遍歷語句
  • while循環語句
  • do-while循環語句
  • 示例:

    if(條件 1) {當條件1為true時執行的代碼 }else if(條件 2){當條件2為true時執行的代碼 }else{當條件1和條件2都不為true時執行的代碼 }

    示例:

    switch(n){case1:執行代碼塊1break;case2:執行代碼塊2break;default:... }

    示例:

    for(語句1;語句2;語句3){被執行的代碼塊 }
  • continue表示為越過本次循環,繼續下一次循環
  • break表示跳出整個循環,循環結束
  • 遍歷

  • for in語句循環遍歷對象的屬性,多用于對象,數組等復合類型,以遍歷其中的屬性和方法。
  • 示例:

    for(鍵 in 對象) {代碼塊 }
  • while,只有表達式為真,就可以進入循環。
  • 示例:

    while(表達式){代碼塊 }
  • do-while
  • 示例:

    do {代碼 }while(表達式)

    數組

    數組的屬性和方法:

    方法說明
    concat()連接兩個或者更多的數組,并返回結果
    join()把數組的所有元素放入一個字符串,元素通過指定的分隔符進行分隔
    pop()刪除并返回數組的最后一個元素
    push()向數組的末尾添加一個或者多個元素,并返回新的長度
    reverse()顛倒數組中元素的順序
    shift()刪除并返回數組的第一個元素
    slice()從某個已有的數組返回選定的元素
    sort()對數組的元素進行排序
    splice()刪除元素,并向數組添加新元素
    toSource()返回該對象的源代碼
    toString()將數組轉換為字符串,并返回結果
    toLocalString()將數組轉換為本地數組,并返回結果
    unshift()向數組的開頭添加一個或者更多元素,并返回新的長度
    valueOf()返回數組對象的原始值
    indexOf()在數組中搜索指定元素并返回第一個匹配的索引
    lastIndexOf()在數組中搜索指定元素并返回最后一個匹配的索引

    concat()

    連接兩個或更多的數組,并返回一個新數組。

    語法:

    arr.concat(a1, a2, ..., an)

    參數:

  • arr:目標數組
  • a1,a2,...,an:需要合并的元素
  • join()

    使用指定分隔符,連接兩個或多個數組的元素,返回一個字符串。

    數組定義

  • 使用new關鍵字創建一個array對象,可以在內存中創建一個數組空間,添加元素。
  • 使用new關鍵字創建一個array對象的同時為數組賦予n個初始值。
  • 不用new,直接用[]聲明一個數組,可以直接賦予初始值。
  • 數組操作

  • 添加元素
  • 刪除元素,pop方法,shift方法,splice方法。
  • 遍歷數組
  • 插入元素,unshift方法,splice方法插入。
  • 合并數組
  • 數組轉字符串
  • 數組元素倒序
    • pop方法,從尾部刪除,刪除后元素從數組上剝離并返回。
    • shift方法,從頭部刪除元素,并返回。
    • splice方法,從指定位置刪除指定的元素。
    • unshift方法,從頭部插入。
    • splice方法,從指定位置插入指定個數的元素。
    • concat方法將多個數組連接成一個數組。
    • join方法將數組中的元素合并成一個用指定分隔符合并起來的字符串。
    • reverse方法可以將數組中的元素倒序排列,而且直接改變原來的數組,不會創建新的數組。
    • sort方法可以將數組中的元素按照一定的規則自動排序(默認的是按照字符的ASCII碼順序排序)。

    pop()和push()

  • pop(): 刪除并返回數組最后一個元素,改變原數組。
  • push(item): 向數組末尾添加一個或多個元素,改變原數組,返回新的數組長度。
  • shift()和unshift()

  • shift(): 刪除并返回數組第一個元素,改變原數組。
  • unshift(item): 向數組頭部添加一個或多個元素,改變原數組,返回新的數組長度。
  • 示例:

    let arr = [1, 2, 3, 5, 6]; let a1 = arr.slice(2); // [3, 5, 6] let a2 = arr.slice(2,3); // [3]let arr = [1, 2, 3, 4]; let a = arr.splice(1, 2, "web", "a"); // a => [2, 3] // arr => [1, "web", "a", 4]

    forEach()

    代碼:

    let a = [1,3,5,7]; a.forEach(function(val, index, arr){arr[index] = val * 2 }) a ; // [2, 6, 10, 14]

    代碼:

    arr.every(callback)測試數組的所有元素是否都通過了指定函數的測試。some()測試數組中的某些元素是否通過由提供的函數實現的測試。

    filter()

    示例:

    let a = [1, "", "aa", 2, 6]; let res = a.filter(function(val, index, arr){return typeof val == "number"; }) res;//[1, 2, 6]

    map()

    對每個元素執行此方法,并返回一個執行后的數組。

    示例:

    let a = [1, 3, 5]; let b = a.map(function(val, index, arr){return val + 1; }) b; //[2, 4, 6]

    拓展運算符

    拓展運算符使用(...)

    示例:

    console.log(...[1, 2, 3]); // 1 2 3 console.log(1, ...[2,3], 4); // 1 2 3 4 // 通常情況 淺拷貝 let a1 = [1, 2]; let a2 = a1; a2[0] = 3; console.log(a1,a2); // [3,2] [3,2]// 拓展運算符 深拷貝 let a1 = [1, 2]; let a2 = [...a1]; // let [...a2] = a1; // 作用相同 a2[0] = 3; console.log(a1,a2); // [1,2] [3,2] let [a, ...b] = [1, 2, 3, 4]; // a => 1 b => [2,3,4]let [a, ...b] = []; // a => undefined b => []let [a, ...b] = ["abc"]; // a => "abc" b => []

    fill()

  • 用于用指定值填充一個數組
  • 用來初始化空數組,并抹去數組中已有的元素
  • fill()的第二個和第三個參數指定填充的起始位置和結束位置
  • new Array(3).fill('a'); // ['a','a','a'] [1,2,3].fill('a'); // ['a','a','a'] [1,2,3].fill('a',1,2);// [1, "a", 3]

    entries(),keys(),values()

  • entries()對鍵值對遍歷
  • keys()對鍵名遍歷
  • values()對鍵值遍歷。
  • includes()

  • includes()用于表示數組是否包含給定的值
  • 第二個參數為起始位置,默認為0,如果負數,則表示倒數的位置,如果大于數組長度,則重置為0開始。
  • 代碼:

    [1,2,3].includes(3,3); // false [1,2,3].includes(3,4); // false [1,2,3].includes(3,-1); // true [1,2,3].includes(3,-4); // true

    flat(),flatMap()

    示例:

    var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4]var arr2 = [1, 2, [3, 4, [5, 6]]]; arr2.flat(); // [1, 2, 3, 4, [5, 6]]var arr3 = [1, 2, [3, 4, [5, 6]]]; arr3.flat(2); // [1, 2, 3, 4, 5, 6] var arr4 = [1, 2, , 4, 5]; arr4.flat(); // [1, 2, 4, 5]

    語法

    var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {// return element for new_array }[, thisArg]) var arr1 = [1, 2, 3, 4];arr1.map(x => [x * 2]); // [[2], [4], [6], [8]]arr1.flatMap(x => [x * 2]); // [2, 4, 6, 8]// only one level is flattened arr1.flatMap(x => [[x * 2]]); // [[2], [4], [6], [8]] let arr1 = ["it's Sunny in", "", "California"];arr1.map(x => x.split(" ")); // [["it's","Sunny","in"],[""],["California"]]arr1.flatMap(x => x.split(" ")); // ["it's","Sunny","in", "", "California"]

    Array.prototype.reduce()

    reduce() 方法對數組中的每個元素執行一個由您提供的reducer函數(升序執行),將其結果匯總為單個返回值。

    var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {return accumulator + currentValue; }, 0); // 和為 6var total = [ 0, 1, 2, 3 ].reduce(( acc, cur ) => acc + cur,0 );

    語法

    arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])initialValue可選作為第一次調用 callback函數時的第一個參數的值。 如果沒有提供初始值,則將使用數組中的第一個元素。 在沒有初始值的空數組上調用 reduce 將報錯。

    字符串對象屬性

    字符串對象屬性

    屬性說明
    constructor對創建該對象的函數的引用
    length字符串的長度
    prototype允許向對象添加屬性和方法

    字符串對象方法

    字符串對象方法

    屬性說明
    anchor()創建HTML錨
    big()用大號字體顯示字符串
    blink()顯示閃動字符串
    bold()使用粗體顯示字符串
    charAt()返回在指定位置的字符
    charCodeAt()返回在指定位置的字符的Unicode編碼
    concat()連接字符串
    fixed()以打字機文本顯示字符串
    fontcolor()使用指定的顏色顯示字符串
    fontsize()使用指定的尺寸顯示字符串
    fromCharCode()從字符編碼創建一個字符串
    indexOf()檢查字符串
    italics()使用斜體顯示字符串
    lastIndexOf()從后向前搜索字符串
    link()將字符串顯示為鏈接
    localeCompare()用本地特定的順序比較兩個字符串
    match()找到一個或者多個正則表達式的匹配
    replace()替換與正則表達式匹配的子串
    search()檢索與正則表達式匹配的值
    slice()提取字符串的片段,并在新的字符串中返回被提取的部分
    small()使用小字號顯示字符串
    split()將字符串分割為字符串數組
    strike()使用刪除線顯示字符串
    sub()將字符串顯示為下標
    substr()從起始索引號提取字符串中指定數目的字符
    substring()提取字符串中兩個指定的索引號之間的字符
    sup()將字符串顯示為上標
    toLocaleLowerCase()將字符串轉換為小寫
    toLocaleUpperCase()將字符串轉換為大寫
    toLowerCase()將字符串轉換為小寫
    toUpperCase()將字符串轉換為大寫
    toString()返回字符串
    valueOf()返回某個字符串對象的原始值
    toSource()代表對象的源代碼

    字符串搜索

    indexOf(),lastIndexOf(),search()和match()。

  • indexOf(),indexOf(搜索詞,起始索引位置),第2個參數不寫則默認從0開始搜索。indexOf()用于檢索指定的字符串值在字符串中首次出現的位置。
  • lastIndexOf(),lastIndexOf(搜索詞,起始索引位置),從后向前檢索,返回的是一個指定的子字符串值最后出現的位置。
  • search(),語法為字符串,search(搜索詞)或者字符串search(正則表達式)。
  • match(),語法為字符串。match()可在字符串內檢索指定的值,或者找到一個或者多個正則表達式的匹配。沒有匹配到結果,就返回null。有匹配到,會返回一個數組,數組的第0個元素存放的是匹配文本。
  • 字符串截取

    3種字符串截取方法:substring(),slice(),substr()

  • substring(),語法為字符串,substring(截取開始位置,截取結束位置),substring()是常用的字符串截取方法,接收兩個參數,不能為負值,將返回一個新的字符串。
  • slice(),語法為字符串,slice(截取開始位置,截取結束位置),slice()中的參數可以為負值,如果參數是負值,則該參數從字符串的尾部開始算起的位置。-1是指字符串的最后一個字符。
  • substr(),substr(截取開始位置,length),在字符串中抽取從截取開始位置下標開始的指定數目的字符。返回一個字符串如果截取的開始位置為負數,則表示從字符串尾部開始算起。
  • 字符串替換

    replace(),replace(正則表達式/要被替換的字符串,要替換成為的子字符串)。

    字符串切割

    split()用于將一個字符串分割成字符串數組,語法為字符串。split(用于分割的子字符串,返回數組的最大長度),返回數組的最大長度一般情況下不設置。

    JS事件三個階段

    事件流:

  • 事件冒泡流
  • 事件捕獲流
  • 事件的處理過程主要有三個階段:捕獲階段,目標階段,冒泡階段
    事件流包含三個階段:事件捕獲階段,處于目標階段和事件冒泡階段。

    • 捕獲,事件由頁面元素接收,逐級向下,到具體的元素
    • 目標,具體的元素本身
    • 冒泡,元素本身,逐級向上,到頁面元素
  • 事件捕獲,當使用事件捕獲時,父級元素先觸發,子元素后觸發。
  • 事件冒泡,當使用事件冒泡時,子級元素先觸發,父元素后觸發。
  • 事件冒泡和事件捕獲

  • 事件發生會產生事件流
  • DOM事件流:DOM結構是一個樹形結構,當一個HTML元素產生一個事件時,該事件會在元素節點與根節點之間按特定的順序傳播,路徑所經過的節點都會收到該事件。
  • 事件流順序有兩種類型:事件冒泡和事件捕獲。
  • 事件觸發方式

    代碼:

    addEventListener("click","doSomething","true")

    第三個參數為true,表示采用事件捕獲,若false,表示采用事件冒泡。

    <!DOCTYPE html> <html lang="en> <head> <meta charset="UTF-8"> <title>Document</title> <style> html,body{width:100%;height:100%; } </style> <script>window.onload=function(){d1 = document.getElementById("d1");d2 = document.getElementById("d2");d3 = document.getElementById("d3");// true 表示在捕獲階段響應// false 表示在冒泡階段響應d1.addEventListener("click",function(event){console.log("d1")},"true");d2.addEventListener("click",function(event){console.log("d2")},"true")d3.addEventListener("click",function(event){console.log("d3")},"true")} </script> </head> <body> <div id="d1" style="background: #0000ff; width: 500px; height: 500px"> <div id="d2" style="background: #00ff00; width: 400px; height: 400px"> <div id="d3" style="background: #ff0000; width: 200px; height: 200px"> </div> </div> </div> </body> </html>

    addEventListener網頁,點擊跳轉:addEventListener.html

    事件委托

    一個響應事件委托到另一個元素。

    <ul id="btn"><li id="btn1">按鈕1</li><li id="btn2">按鈕2</li><li id="btn3">按鈕3</li> </ul>var btn1 = document.getElementById('btn1'); var btn2 = document.getElementById('btn2'); var btn3 = document.getElementById('btn3');webbtn.myAddFun(btn1, 'click', function(event){alert('1點擊'); });webbtn.myAddFun(btn2, 'click', function(event){alert('2點擊'); });webbtn.myAddFun(btn3, 'click', function(event){alert('3點擊'); });

    添加一個事件處理函數,來做事件委托

    var btn = document.getElementById('btn'); webbtn.myAddFun(btn, 'click', function(event){event = webbtn.getMyEvent(event);var target = webbtn.getMyTarget(event);switch(target.id){case "btn1":alert('1點擊');break;case "btn2":alert('2點擊');break;case "btn3":alert('3點擊');break;} });

    鍵盤事件

    鍵盤事件就是有關鍵盤操作所觸發的世界。

    鍵盤事件:

    方法說明
    keydown當用戶按下鍵盤上的任意鍵時觸發。按住不放,會重復觸發
    keypress當用戶按下鍵盤上的字符鍵時觸發。按住不放,會重復觸發
    keyup當用戶釋放鍵盤上的鍵時觸發

    鼠標拖拽效果

    鼠標綁定onmousedown(),onmousemove(),onmouseup()事件。

    mouse網頁,點擊跳轉:mouse.html

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>mouse</title><style>html,body{width: 100%;height: 100%;}#dd {width: 120px;height: 120px;background: #00ff00;position: absolute;}</style><script>var dd;var mflag = false;function ondown() {dd = document.getElementById('dd');mflag = true;}function onmove(e){if(mflag) {dd.style.left = e.clientX - 60 + "px";dd.style.top = e.clientY - 60 + "px";}}function onup() {mflag = false;}</script></head><body onmousemove="onmove(event)"><div id="dd" onmousedown="ondown()" onmouseup="onup()" style="left: 80px;top: 120px;"</body> </html>

    鼠標事件

    鼠標事件:

    方法說明
    click用戶單擊鼠標左鍵或者按下Enter鍵觸發
    dbclick用戶雙擊鼠標觸發
    mousedown在用戶按下任意鼠標按鈕時觸發
    mouseenter在鼠標光標從元素外部首次移動到元素范圍內時觸發,不冒泡
    mouseleave元素上方的光標移動到元素范圍之外時觸發,不冒泡
    mousemove光標在元素的內部不斷移動時觸發
    mouseover用戶指針位于一個元素外部,然后用戶將首次移動到另一個元素邊界之內時觸發
    mouseout用戶將光標從一個元素上方移動到另一個元素時觸發
    mouseup在用戶釋放鼠標時觸發
    mousewheel滾輪滾動時觸發

    示例:

    function web(e) {mouseX = e.clientX;mouseY = e.clientY;console.log("x:"+mouseX + "," + "y:"+mouseY) }<body onclick="web(event)">
  • 鼠標懸停是onmouseover
  • 鼠標離開是onmouseout
  • 窗口事件

    窗口事件:

  • load
  • unload
  • abort
  • error
  • select
  • resize
  • scroll
  • load事件,表示當頁面完全加載完之后,就會觸發window上面的load事件。包含所有的圖像,js文件,css文件等外部資源。

    示例:

    window.onload=function(){}

    當頁面完全加載完之后執行其中的函數。

    示例:

    <script>window.onload = function() {var mydiv = document.getElementById("mydiv");console.log(mydiv.innerText);} </script><body><div id="mydiv"></div> </body>

    示例:

    function imgLoad() {myimg = document.getElementById("myimg");// 圖片加載完成后,給圖片加載框myimg.style.border = "9px solid $00ff00"; }<img id="myimg src="" onload="imgLoad()">

    resize事件

  • 當調整瀏覽器的窗口到一個新的寬度或者高度時,會觸發resize事件。
  • 示例:

    document.body.clientWidth和document.body.clientHeight獲得窗口的寬和高。

    html,body {width: 100%;height: 100%; }<script>function winChange() {winWidth = document.body.clientWidth;winHeight = document.body.clientHeight;} </script><body onresize="winChange()"> </body>

    scrol事件,文檔或者瀏覽器窗口被滾動時觸發scroll事件

    示例:

    <script>function scrollChange() {srpos = document.getElementById("srpos");srpos.innerText = document.documentElement.scrollTop;srpos.style.top = docuemnt.documentElement.scrollTop+"px";} </script><body onscroll="scrollChange()"><div style="height:300%;"><br/><font id="srpos" style="position: relative;top: 0px">滾動條滾動到0px</font></div> </body>

    焦點事件

    方法說明
    blur在元素失去焦點時觸發,所有瀏覽器都支持
    focus在元素獲得焦點時觸發,所有瀏覽器都支持

    示例:

    <script> var note; function myfocus(fname,notename) {note = document.getElementById(notename);note.innerText = fname+'獲得焦點'; }function myblur(fname,notename) {note = document.getElementById(notename);note.innerText = fname + '失去焦點'; } </script><body><form name="myform"><input type="text" name="uname" onfocus="myfocus('uname','unote')" onblur="myblur('uname','unote')"/><font id="unote"></font><br/><input type="text" name="pwd" onfocus="myfocus('pwd','pnot')" onblur="myblur('pwd','pnote')"/><font id="pnote"></font></form></body>

    事件介紹

    事件方法

    方法說明
    onabort圖像加載被中斷
    onblur元素失去焦點
    onchange用戶改變域的內容
    onclick鼠標單擊某個對象
    ondblclick鼠標雙擊某個對象
    onerror當加載文檔或圖像時發生某個錯誤
    onfocus元素獲得焦點
    onkeydown某個鍵盤的鍵被按下
    onkeypress某個鍵盤的鍵被按下或者按住
    onkeyup某個鍵盤的鍵被松開
    onload某個頁面或者圖像被完成加載
    onmousedown某個鼠標按鍵被按下
    onmousemove鼠標被移動
    onmouseout鼠標從某元素移開
    onmouseover鼠標被移到某元素之上
    onmouseup某個鼠標按鍵被松開
    onreset重置按鈕被單擊
    onresize窗口或者框架被調整尺寸
    onselect文本被選定
    onsubmit提交按鈕被單擊
    onunload用戶退出頁面

    窗口事件

  • load事件
  • resize事件
  • scroll事件
  • 焦點事件
  • 鼠標事件

  • 獲取鼠標單擊位置
  • 鼠標懸停和離開
  • 鼠標拖拽
  • 鍵盤事件與事件冒泡,獲取

    JavaScript內置對象

  • window對象
  • document對象
  • location對象
  • navigator對象
  • screen對象
  • history對象
  • JavaScript的DOM操作,包含獲取節點,獲取,設置元素的屬性值,創建,添加節點,刪除節點,屬性操作。

    DOM對象

  • 當網頁被加載時,瀏覽器會創建頁面的文檔對象模型,Document Object Model,文檔對象模型屬于BOM的一部分,用于對BOM中的核心對象document進行操作。
  • html dom模型被構造為對象的樹。
  • DOM操作

    獲取節點的方法:

  • 標簽id獲取:
  • document.getElementById(idName)
  • 標簽name屬性獲取:返回元素數組
  • document.getElementsByName(name)
  • 類別名稱獲取:返回元素數組
  • document.getElementsByClassName(className)
  • 標簽名稱獲取:返回元素數組
  • document.getElementsByTagName(tagName)

    獲取,設置元素的屬性值

  • getAttribute(attributeName)方法,//括號出入輸入名,返回對應屬性的屬性值
  • setAttribute(attributeName,attributeValue)方法,//傳入屬性名以及設置的值
  • 示例:

    <script> window.onload=function(){mytable = document.getElementById('mytable');// 獲取mytable中標簽名為tr的字節點trs = mytable.getElementsByTagName("tr");len = trs.length;flag = true;for(i=0;i<len;i++){if(flag){trs[i].setAttribute('bgcolor','#cccccc');flag = false;}else{flag = true;}}ww = mytable.getAttribute('width'); } </script><body> <table id="mytable' align='center' width="80%" border="1"> <tr bgcolor = "#cccccc"><td>aaa</td><td>bbb</td><td>ccc</td> </tr> </table> </body>

    創建,添加節點

  • 創建節點:
  • 代碼:

    // 創建節點:document.createElement("h1"); document.createTextNode(String); document.createAttribute("class");
  • 添加節點:
  • 代碼:

    element.appendChild(Node);element.insertBefore(newNode, existingNode);
  • 刪除節點
  • 代碼:

    element.removeChild(Node)

    屬性操作:獲取當前元素的父節點,獲取當前元素的子節點,獲取當前元素的同級元素,獲取當前元素的文本,獲取當前節點的節點類型,設置樣式。

    • 獲取當前元素的父節點

    代碼:

    element.parentNode
    • 獲取當前元素的子節點

    代碼:

    element.chlidren
    • 獲取當前元素的同級元素

    代碼:

    element.nextElementSiblingelement.previousElementSibling
    • 獲取當前元素的文本

    代碼:

    element.innerHTMLelement.innerText
    • 獲取當前節點的節點類型

    代碼:

    node.nodeType

    BOM對象

  • BOM對象,稱為內置對象,是瀏覽器對象模型,也是JavaScript的重要組成部分。
  • window-》document,location,navigator,screen,history
  • window對象表示瀏覽器窗口
  • window.innerHeight獲取瀏覽器窗口的內部高度,window.innerWidth獲取瀏覽器窗口的內部寬度。
  • document.documentElement.clientHeight,document.documentElement.clientWidth;document.body.clientHeight,document.body.clientWidth。
  • 打開新窗口,window.open(url)。
  • 關閉當前窗口,window.close()。
  • 調整當前窗口的尺寸,window.resizeTo(寬,高)
  • document對象

    document屬性和方法:

    屬性和方法說明
    document.bgColor設置頁面背景顏色
    document.fgColor設置前景色
    document.linkColor未點擊過的鏈接顏色
    document.alinkCOlor激活鏈接的顏色
    document.vlinkColor已點擊過的鏈接顏色
    document.URL設置url屬性,從而在同一窗口打開另一網頁
    document.cookie設置或讀出cookie
    document.write()動態地向頁面寫入內容
    document.createElement(Tag)創建一個HTML標簽對象
    document.getElementById(ID)獲得指定id值的對象
    document.getElementsByName(Name)獲得指定name值的對象
    document.body指定文檔主體的開始和結束
    document.location.href完整url
    document.location.reload()刷新當前網頁
    document.location.reload(url)打開新的網頁

    location對象

    location屬性和方法:

    屬性和方法說明
    location.href顯示當前網頁的url鏈接
    location.port顯示當前網頁鏈接的端口
    location.reload()重新刷新當前頁面

    navigator 對象

    navigator對象包含有關瀏覽器的信息

    屬性說明
    appName返回瀏覽器的名稱
    appVersion返回瀏覽器的平臺和版本信息
    cookieEnabled返回指明瀏覽器的是否啟用cookie的布爾值
    platform返回運行瀏覽器的操作系統平臺

    screen對象

  • 每個window對象的screen屬性都引用一個scrren對象。
  • screen對象中存放有關顯示瀏覽器屏幕的信息。
  • screen對象的屬性:

    屬性說明
    availHeight返回顯示屏幕的高度
    availWidth返回顯示屏幕的寬度
    bufferDepth設置或者返回調色板的比特深度
    Height返回顯示器屏幕的高度
    Width返回顯示器屏幕的寬度

    history對象

  • history對象包含用戶訪問過url。
  • history對象的屬性:

    屬性說明
    history.length返回瀏覽器歷史列表中的url數量
    history.back()加載history列表中的前一個url
    history.forward()加載history列表中的下一個url
    history.go()加載history列表中的某個具體頁面

    內置函數

  • 字符串函數
  • 數組函數
  • 數學函數
  • 日期函數
  • 數學函數

    屬性說明
    ceil大于或等于該數的最小整數,向上取整
    floor小于或等于該數的最大整數,向下取整
    min(參數1,參數2)返回最小值
    max(參數1,參數2)返回最大值
    pow(參數1,參數2)返回數值1的數值2次方
    random()返回隨機數
    round(數值)四舍五入
    sqrt(數值)開平方根

    日期函數

    • set:用于設置Date對象的日期和時間的值。
    • get:用去獲取Date對象的日期和時間的值。
    • to:用于返回Date對象的字符串格式的值。
    • parse和UTC:用于解析Date字符串。
    屬性說明
    getFullYear()獲取完整的年份
    getMonth()獲取當前月份
    getDate()獲取當前日
    getDay()獲取當前星期幾
    getTime()獲取當前時間(從1970.1.1開始)
    getHours()獲取當前小時數
    getMinutes()獲取當前分數
    getSeconds()獲取當前秒數
    toLocalDateString()獲取當前日期
    toLocalTimeString()獲取當前時間
    toLocalString()獲取日期與時間
  • 秒/分: 0 - 59;
  • 時: 0 - 23;
  • 星期: 0(周日) - 6(周六)
  • 日期: 1 - 31
  • 月份: 0(一月) - 11(十二月)
  • 年份: 從1900開始的年數
  • 定時器函數

  • setInterval(),按照指定的周期調用函數或者計算表達式。
  • setTimeout(),在指定的毫秒數后調用函數或者計算表達式。
  • 區別:setTimeout()只運行一次,setInterval()是循環執行的。
  • 函數

  • 函數由函數名,參數,函數體,返回值4部分組成的。
  • 代碼:

    function 函數名(參數){函數體return 返回值 }
  • 函數聲明3種:通過函數名聲明,在程序調用時才能執行;通過將匿名函數賦值給變量,調用時可以執行;通過new的方式來聲明,不需要調用,直接執行。
  • 代碼:

    function web1 () {document.write("1"); } web1();var web2 = function(){document.write("2") } web2();// 無須調用,直接執行,此方法不常用 var web3 = new function(document.write("3") );
  • 函數返回值,函數執行完可以有返回值,也可以沒有。
  • 函數的調用:傳值調用,傳址調用,傳函數調用。
  • 閉包函數

    • 內部函數只能在外部函數中訪問
    • 內部函數形成閉包
    • 可以訪問外部函數的參數和變量
    • 外部函數卻不能使用這個內部函數的參數和變量
    • 閉包可以給內部函數的變量提供一定的安全保障

    在js中一個函數在另一個函數中定義,就可以訪問到父函數的成員,內部的函數就稱為閉合函數。

    閉合是詞法閉包的簡稱,是引用了自由變量的函數。

    閉包函數的特點:

  • 閉包作為與函數成對的數據,在函數執行過程中屬于激活狀態。
  • 閉包運行結束后,保持運行過程中的最終數據狀態
  • 閉包(英語:Closure),又稱詞法閉包(Lexical Closure)或函數閉包(function closures)
  • 閉包在實現上是一個結構體,它存儲了一個函數(通常是其入口地址)和一個關聯的環境(相當于一個符號查找表)。
  • 詞法作用域
  • 代碼:

    function init() {var name = "web"; // name 是一個被 init 創建的局部變量function displayName() { // displayName() 是內部函數,一個閉包alert(name); // 使用了父函數中聲明的變量}displayName(); } init();

    init() 創建了一個局部變量 name 和一個名為 displayName() 的函數。

    displayName() 是定義在 init() 里的內部函數,并且僅在 init() 函數體內可用。

    displayName() 沒有自己的局部變量。然而,因為它可以訪問到外部函數的變量,所以 displayName() 可以使用父函數 init() 中聲明的變量 name 。

    displayName() 函數內的 alert() 語句成功顯示出了變量 name 的值(該變量在其父函數中聲明)。

    這個詞法作用域的例子描述了分析器如何在函數嵌套的情況下解析變量名。

    詞法指,詞法作用域根據源代碼中聲明變量的位置來確定該變量在何處可用。嵌套函數可訪問聲明于它們外部作用域的變量。

    閉包是一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分。

    JavaScript中所有的function都是一個閉包。不過一般來說,嵌套的function所產生的閉包更為強大,也是大部分時候我們所謂的“閉包”。

    閉包的作用

    在a執行完并返回后,閉包使得Javascript的垃圾回收機制GC不會收回a所占用的資源,因為a的內部函數b的執行需要依賴a中的變量。

  • 函數的執行環境(excution context)
  • 活動對象(call object)
  • 作用域(scope)
  • 作用域鏈(scope chain)
  • 定時器和閉包

    代碼如下:

    for(var i = 0 ; i<10; i++){setTimeout(function(){console.log(i);},100); }

    返回的是10個10。

    解決:

  • 使用ES6新增的let。
  • 使用閉包
  • for(var i = 0; i<10 ; i++){(function(i){setTimeout(function(){console.log(i);}, i*100);})(i); }

    ES6之前,使用var聲明變量會變量提升問題:

    for(var i = 0 ; i<10; i++) {console.log(i) };console.log(i); // 變量提升 返回10

    對象

  • 聲明一個對象有兩種方法:通過new Object()和{}實現。
  • 示例:

    // 1 var Person = function(id,name){this.id = di;this.name = name; } var user1 = new Person(1,"web");// 2 var web1 = {id:1,name:"web"}; var web2 = Object.create({id:2,name:"web"});

    正則表達式太難了

    創建正則表達式

    使用一個正則表達式字面量:

    let reg = /ab+c/; let reg = /^[a-zA-z]/gi;
  • 記不住,記不住,記不住。
  • 正則表達式是由普通字符以及特殊字符組成的文字模式。
  • 正則表達式中包含匹配符,定位符,限定符,轉義符等。
  • 正則表達式中有兩種方法:字符串方法,正則對象方法。
  • 字符串方法

    屬性說明
    search()檢索與正則表達式相匹配的值
    match()找到一個或者多個正則表達式的匹配
    replace()替換與正則表達式的字符串
    split()把字符串分割為字符串數組

    正則對象方法

    RegExp對象方法

    屬性說明
    test()用于檢測一個字符串是否匹配某個模式
    exec()該方法用于檢索字符串中的正則表達式的匹配,該函數返回一個數組
    [a-z] 匹配小寫字母從a到z中的任意一個字符 [A-Z] 匹配大寫字母從a到z中的任意一個字符 [0-9] 匹配數字0到9中任意一個字符,等于 \d [0-9a-z] 匹配數字0到9或者小寫字母a到z中任意一個字符。 [0-9a-zA-Z] 匹配數字0到9或小寫a到z或大寫A到Z中任意一個字符 [abcd] 匹配字符abcd中的任意一個字符 [^a-z] 匹配除小寫字母a到z外的任意一個字符 [^0-9] 匹配除數字0到9外的任意一個字符 [^abcd] 匹配除abcd外的任意一個字符

    元字符是擁有特殊含義的字符:

    . 查找單個字符,除了換行和行結束符。 \w 查找單詞字符。 \W 查找非單詞字符。 \d 查找數字。 \D 查找非數字字符。 \s 查找空白字符。 \S 查找非空白字符。 \0 查找 NUL 字符。 \n 查找換行符。 \f 查找換頁符。 \r 查找回車符。 \t 查找制表符。 \v 查找垂直制表符。 \xxx 查找以八進制數 xxx 規定的字符。 \xdd 查找以十六進制數 dd 規定的字符。 \uxxxx 查找以十六進制數 xxxx 規定的 Unicode 字符。

    量詞

    量詞描述

    量詞描述
    n+至少一個 n 的字符串。
    n*零個或多個 n 的字符串。
    n?零個或一個 n 的字符串。
    n{X}X 個 n 的序列的字符串。
    n{X,Y}X 至 Y 個 n 的序列的字符串。
    n{X,}至少 X 個 n 的序列的字符串。
    n$匹配任何結尾為 n 的字符串。
    ^n匹配任何開頭為 n 的字符串。
    ?=n匹配任何其后緊接指定字符串 n 的字符串。
    ?!n匹配任何其后沒有緊接指定字符串 n 的字符串。
    .定位符定位符可以將一個正則表達式固定在一行的開始或者結束,也可以創建只在單詞內或者只在單詞的開始或者結尾處出現的正則表達式。 ^匹配輸入字符串的開始位置 $匹配輸入字符串的結束位置 \b匹配一個單詞邊界 \B匹配非單詞邊界 /^[\d]{4}-[\d]{1,2}-[\d]{1,2}${1,2}$]/ 日期字符 轉義符使用轉義符(反斜杠\)進行轉義

    new RegExp(str[, attr])接收2個參數,str是一個字符串,指定正則表達式匹配規則,attr可選,表示匹配模式,值有g(全局匹配),i(區分大小寫的匹配)和m(多行匹配)。

    表達式:g,i,mg 表示全局模式應用于所有字符串,而非在發現第一個匹配項就停止i 表示不區分大小寫模式m 表示多行模式繼續查找下一行中是否存在模式匹配的項 修飾符描述
    i執行對大小寫不敏感的匹配。
    g執行全局匹配。
    m執行多行匹配。

    arguments對象

    函數的實際參數會被保存在一個類數組對象 arguments 對象中,通過索引訪問具體的參數:

    var a = arguments[i]
  • 使用arguments.length來獲取實際傳入參數的數量
  • arguments對象來獲取每個參數
  • 文本框失去焦點事件、獲得焦點事件

    onBlur:當失去輸入焦點后產生該事件

    onFocus:當輸入獲得焦點后,產生該文件

    Onchange:當文字值改變時,產生該事件

    Onselect:當文字加亮后,產生該文件

    記憶力最好的三個時間段

  • 睡覺前2個小時
  • 起床后的一個小時
  • 上午8-10點
  • ??感謝大家

    1.如果本文對你有幫助,就點個贊支持下吧,你的「贊」是我創作的動力。

    2.添加微信【xiaoda0423】,拉你進技術交流群一起學習。

    總結

    以上是生活随笔為你收集整理的【思维导图】前端开发JavaScript-巩固你的JavaScript知识体系的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    97超碰人人模人人人爽人人爱 | 2019中文字幕第一页 | 成人av电影在线播放 | 视频91在线 | 成人欧美亚洲 | 国产精品成人品 | 99久久影院| 91 在线视频播放 | 国产日韩欧美在线 | 成全在线视频免费观看 | 亚洲视频免费 | 成人久久免费视频 | 久久a久久 | 麻豆国产露脸在线观看 | 午夜美女网站 | 超碰在线人人爱 | 国产二区av| 国产精品久久久网站 | 最新日韩中文字幕 | 99在线热播精品免费99热 | 97夜夜澡人人爽人人免费 | 成人在线观看资源 | 国产成人精品av在线观 | 在线不卡a | 日韩va在线观看 | 久久国产精品99久久久久 | 一区二区三区在线免费观看 | 久久免费视频网站 | 91视频在线看 | 久草在线观 | 成人av电影在线 | 97久久精品午夜一区二区 | 超碰国产在线播放 | 亚洲激情中文 | 国产一区在线免费观看视频 | 国产精品不卡 | 亚洲影院天堂 | 人人澡超碰碰 | 涩涩成人在线 | 久久你懂得 | 91精品国产综合久久福利 | 成人 国产 在线 | 久久欧美在线电影 | 黄色午夜网站 | 欧美激情综合五月色丁香 | 欧美精品一级视频 | 欧美日韩一级久久久久久免费看 | 六月丁香在线观看 | 亚洲色图27p | 一本一本久久aa综合精品 | 亚洲国产精品传媒在线观看 | 日韩免费在线看 | 黄色一二级片 | 亚洲日韩欧美一区二区在线 | 亚洲精品乱码久久久久久写真 | 成人在线黄色 | 白丝av免费观看 | 中文字幕亚洲字幕 | 人人干人人干人人干 | 久热免费在线观看 | 久久激情视频 久久 | 亚洲在线资源 | 免费日韩 精品中文字幕视频在线 | 93久久精品日日躁夜夜躁欧美 | 精品国产一区二区三区男人吃奶 | 99久久精品视频免费 | 99热最新在线 | 一区二区三区高清在线 | 黄色精品在线看 | 亚洲成aⅴ人在线观看 | 91精品秘密在线观看 | 99精品视频免费 | 日韩av片无码一区二区不卡电影 | 99精品在线观看视频 | 国产午夜三级一区二区三 | 天天射天天拍 | 久久久网页 | 日本韩国欧美在线观看 | 国产精品6999成人免费视频 | 2019av在线视频 | 久久精品资源 | 国产精品欧美激情在线观看 | 国产精品av在线免费观看 | 五月婷婷在线视频观看 | 亚洲精品免费播放 | 日本成人免费在线观看 | 91在线免费视频观看 | 探花视频免费在线观看 | 久久国产精品99久久久久 | 麻豆久久精品 | 久久精品视频观看 | 免费av观看网站 | 亚洲美女免费精品视频在线观看 | 黄污污网站| 天天综合91 | 国产日韩三级 | 91综合视频在线观看 | 激情欧美国产 | 亚洲国产一二三 | 国产91精品高清一区二区三区 | 精品久久在线 | 国内揄拍国内精品 | av观看久久久 | 欧美性黑人 | 国产成人精品女人久久久 | 91桃色免费视频 | 免费观看国产精品 | 91精品在线免费视频 | 狠狠ri| 亚洲成色777777在线观看影院 | 日韩在线视频观看 | 少妇精品久久久一区二区免费 | 久久99在线观看 | 97精品欧美91久久久久久 | 欧美另类一二三四区 | 亚洲高清在线视频 | 国产精品成人免费精品自在线观看 | 午夜精品久久久99热福利 | 欧美性一级观看 | 精品视频中文字幕 | 四虎在线影视 | 亚州精品在线视频 | 国模视频一区二区三区 | 97国产精品视频 | 亚洲欧洲精品久久 | 国产 成人 久久 | 激情av资源网 | 久草在线免 | 免费视频色 | 狠狠色丁香婷婷综合基地 | 久久综合给合久久狠狠色 | 久久久久麻豆v国产 | 午夜精品电影 | 亚洲精品国产免费 | 99精品欧美一区二区蜜桃免费 | av电影 一区二区 | 韩国精品视频在线观看 | 色偷偷人人澡久久超碰69 | 久久97久久 | 激情校园亚洲 | 亚洲国产综合在线 | 国产一级黄色电影 | 欧美一区影院 | 中文字幕在线免费观看视频 | 国产高清精 | 精品国产一二三四区 | 中文字幕黄色 | 中文字幕在线观看一区 | 国产欧美精品在线观看 | 99热国产在线 | 亚洲精品在 | 久热免费在线观看 | 五月综合激情婷婷 | 久热超碰 | a级一a一级在线观看 | av电影中文 | 色吊丝在线永久观看最新版本 | 在线观看成人福利 | 久久天堂网站 | 亚洲女在线 | 中文字幕一区二区三区四区 | 手机av网站 | a√天堂资源 | 欧美色图视频一区 | 91在线国内视频 | 国产视频综合在线 | 色婷婷免费视频 | 亚洲伊人第一页 | 五月婷综合 | 色婷婷av一区 | 五月婷婷国产 | 久久久久久久久久久久99 | 天天射天天爱天天干 | 91精品在线视频观看 | 激情电影影院 | 久久国产精品99久久久久 | 99re中文字幕| 一区二区三区免费看 | 午夜精品999 | 一区中文字幕电影 | 狠狠色网 | 国产精品九九九 | 日本午夜免费福利视频 | 91在线精品秘密一区二区 | 最新日韩电影 | 亚洲免费观看在线视频 | 97在线观看视频免费 | 国产精品1区2区在线观看 | 色www精品视频在线观看 | 成人一级片视频 | 久久国产亚洲精品 | 黄色一级大片在线免费看国产一 | 在线亚洲欧美视频 | 视频二区在线 | 久久久www成人免费精品张筱雨 | 四虎影院在线观看av | 丁香综合激情 | 伊人午夜视频 | 国产精品毛片一区视频 | 国产女教师精品久久av | av在线播放一区二区三区 | 一区二区三区韩国免费中文网站 | 国产精品手机在线观看 | 精品国产精品一区二区夜夜嗨 | 亚洲色图色 | 亚洲精品在线一区二区 | 黄色a视频 | 欧美在线视频一区二区三区 | 国产综合精品久久 | 亚州国产精品 | 久久天天躁夜夜躁狠狠躁2022 | 欧美男女爱爱视频 | 精品在线免费观看 | 国产五月婷 | 成人国产精品免费观看 | 伊人五月在线 | 亚洲永久精品在线观看 | 国产精在线 | 丰满少妇一级 | 亚洲第二色 | 国内精品久久久久影院男同志 | 午夜精品一区二区三区在线 | 婷婷5月激情5月 | 精品国产一区二区三区四区在线观看 | 久久深夜| 亚洲理论片在线观看 | 在线视频国产区 | 久久草草影视免费网 | 久久久久久国产一区二区三区 | 久久99国产精品二区护士 | 国产成人在线综合 | 精品一区二区在线免费观看 | 午夜精品影院 | 久久婷亚洲五月一区天天躁 | 91精品伦理 | 婷婷丁香在线观看 | 中文字幕在线免费观看 | 亚洲黄色免费网站 | 色偷偷88欧美精品久久久 | 久久精品视频在线观看 | 操操爽| 最新日韩精品 | 中国一级片在线播放 | 欧美人交a欧美精品 | 亚洲综合涩 | 国产精品美女久久久久久久 | 欧美色综合| 久久久久综合精品福利啪啪 | 久久97久久 | 天堂av免费在线 | 欧美日韩免费视频 | 精品久久久久国产 | 成人在线免费看 | 日韩精品一区二区三区三炮视频 | 九热精品| 国产精品电影一区二区 | 日韩精品视频免费 | 国产亚洲久一区二区 | 91精选在线 | av在线播放亚洲 | 五月激情婷婷丁香 | 国内视频在线观看 | 亚洲人天堂 | 国产91精品在线播放 | 91成人天堂久久成人 | 日本中文字幕网址 | 久草在线资源观看 | 亚洲高清激情 | 日韩在线播放欧美字幕 | 免费成人在线观看 | 97人人超| 亚洲精品网页 | 尤物九九久久国产精品的分类 | 国产精品99久久久久 | 日韩特级毛片 | 久久视频在线观看免费 | 婷婷五月色综合 | 久热超碰 | 国产精品高清免费在线观看 | 国产又粗又硬又爽视频 | 亚洲成人黄色网址 | 亚洲成av人片一区二区梦乃 | 97精品国产97久久久久久免费 | 亚洲高清激情 | 成人一级| 欧美另类tv | 久久免费视频在线观看 | 天天操狠狠操网站 | 日韩三级在线 | 亚洲国产精品传媒在线观看 | www.com.日本一级 | 天天爽人人爽 | 国产高清成人在线 | 久久久精品久久 | 四虎成人精品永久免费av | 国产高清成人在线 | 1024久久 | 久久成人毛片 | 精品欧美一区二区在线观看 | 天天天天天天天天操 | 中文字幕一二 | 在线日韩 | 五月婷丁香网 | 婷婷色亚洲| 亚洲理论在线观看电影 | 俺要去色综合狠狠 | 国产区久久 | 99久久久久免费精品国产 | 96国产在线| 最新国产精品久久精品 | 国产成人亚洲在线观看 | 99热最新地址 | 久久久久久久久久久免费av | 成人免费看片网址 | 国产片免费在线观看视频 | 91免费网站在线观看 | 在线视频中文字幕一区 | 久久久久在线 | 在线免费观看黄色大片 | 亚洲自拍自偷 | 中文字幕在线观看1 | 国产精品一区专区欧美日韩 | 香蕉精品视频在线观看 | 草在线视频 | 午夜10000 | 精品久久影院 | 激情婷婷久久 | 五月激情综合婷婷 | 国产视频色 | 欧美日韩在线免费观看 | 国产日韩欧美精品在线观看 | 99在线精品视频观看 | 中文在线a∨在线 | 麻豆系列在线观看 | 国产精品乱看 | 国产高清综合 | 粉嫩av一区二区三区四区 | 永久精品视频 | 久草视频在线免费播放 | 国产精品第一页在线 | 成人啪啪18免费游戏链接 | 国产在线毛片 | www.午夜色.com | 夜夜爽www | 久热免费 | 精品久久久久久亚洲综合网站 | 欧美极品一区二区三区 | 99久久久久成人国产免费 | 日韩精品播放 | 日韩精品专区在线影院重磅 | 久久99电影 | 精品国产免费人成在线观看 | 亚洲综合小说电影qvod | 久久字幕 | 久久免费视频这里只有精品 | 国产精品久久久久久久av电影 | 丝袜网站在线观看 | 激情网在线观看 | 久一网站 | 国产做a爱一级久久 | 亚洲精品美女视频 | 天天干天天干天天 | 九九综合在线 | 国产精品99页 | 九月婷婷色 | 精品婷婷 | 97在线观看免费视频 | 色久网| 青草草在线视频 | 国产xxxxx在线观看 | 久久不射电影院 | www.国产高清 | 日韩久久一区二区 | 天天爽人人爽 | 亚洲成人免费在线 | 中文字幕亚洲综合久久五月天色无吗'' | 天海冀一区二区三区 | 制服丝袜天堂 | 久久九九国产视频 | 91在线产啪 | 国产精品99久久久久久人免费 | 97色涩 | 九九热在线观看 | 久久精品一区二区三区中文字幕 | 亚洲涩涩色 | 天天操夜夜操天天射 | 国产精品毛片一区视频播不卡 | 欧美日韩69 | 国产明星视频三级a三级点| 黄色精品一区二区 | 久久久久久久久国产 | 激情久久伊人 | 国产午夜一区 | 国产视频不卡一区 | 五月天婷婷狠狠 | 免费成人结看片 | 手机在线视频福利 | 伊人精品在线 | 国内精品亚洲 | 免费福利视频网 | 天天射天天干天天爽 | 少妇性xxx | 天天综合网在线观看 | 久久久久欠精品国产毛片国产毛生 | 久久免费大片 | av看片在线 | 国产一级在线视频 | 国产高清免费 | 三级黄免费看 | 欧美国产精品一区二区 | 日韩精品中字 | 国产精品高潮呻吟久久av无 | 涩av在线 | 国产综合小视频 | 一级特黄aaa大片在线观看 | 免费日韩 精品中文字幕视频在线 | 亚洲精品www.| 亚洲mv大片欧洲mv大片免费 | 美女视频久久黄 | 亚洲免费精品一区二区 | 精品国产1区2区 | 国产一级免费播放 | 日韩爱爱网站 | 手机看片午夜 | 日韩欧美在线免费 | 精品国产伦一区二区三区免费 | 亚洲91视频 | 久久久久欧美精品999 | av电影在线免费观看 | 色偷偷中文字幕 | 免费成人av在线看 | a资源在线 | 国产资源免费在线观看 | 天天干,夜夜操 | 久一在线| 免费的国产精品 | 18久久久 | 992tv在线观看 | 日韩av电影手机在线观看 | 在线高清一区 | 国产一级片观看 | 午夜狠狠操 | 国产69久久精品成人看 | 欧美一区二区三区在线播放 | 天天色草| 国产视频第二页 | av网站手机在线观看 | 国产免费激情久久 | 在线91观看 | 中文国产在线观看 | 99久久9| 亚洲日本va午夜在线影院 | 久久综合色婷婷 | 91免费看黄| 国产精品欧美在线 | 国产一区欧美一区 | 一区二区三区播放 | 免费看片网址 | 日韩高清免费电影 | 欧美另类xxxxx | 久久 在线 | 综合激情婷婷 | 一区二区三区电影大全 | 精品一区二区三区久久久 | 黄色一级在线视频 | 婷婷久久综合九色综合 | 国产不卡精品 | 免费视频二区 | 在线观看深夜视频 | 外国av网| 99精品国产aⅴ | 久久久久高清 | 在线日本看片免费人成视久网 | 在线亚洲天堂网 | 天天操天天操天天 | 色99之美女主播在线视频 | 最新中文字幕在线播放 | 超黄视频网站 | 男女啪啪免费网站 | 久久99精品久久久久蜜臀 | 亚洲综合成人专区片 | 亚洲精品在线看 | 亚洲精品男女 | 丁香久久激情 | 久久久综合九色合综国产精品 | 伊人伊成久久人综合网小说 | 欧美国产日韩一区二区 | 超碰国产人人 | 91色在线观看视频 | 国产 一区二区三区 在线 | 麻豆影视在线观看 | 综合激情久久 | 97国产一区| 国内久久看 | 久久五月婷婷丁香 | 日韩啪视频 | 国产精品v欧美精品v日韩 | 亚洲精品乱码久久久久久蜜桃动漫 | 久久8| 日日综合| 成年人在线免费看片 | 国产黄色一级片在线 | 国产成人一区二区三区电影 | 激情视频网页 | 激情欧美一区二区三区免费看 | 91麻豆精品91久久久久同性 | 美女av在线免费 | 精品国偷自产在线 | a成人v | 18做爰免费视频网站 | 国产美女网站视频 | 99色网站| 中文国产在线观看 | 人人干网站 | 国产中文在线播放 | 99精品视频99 | 国产日韩一区在线 | 视频三区在线 | 国产高清在线免费观看 | 九九九九热精品免费视频点播观看 | 97在线资源 | 成人一区二区在线 | 手机成人在线电影 | 99视频国产精品免费观看 | 国产做a爱一级久久 | 夜夜操天天摸 | 国产小视频免费在线网址 | 99爱国产精品 | 精品一区二区亚洲 | 日韩在线免费看 | 精品亚洲视频在线观看 | av福利网址导航大全 | 久久久久五月 | 九九九毛片 | 91资源在线观看 | 91黄色视屏| 在线观看免费91 | 91精品999| 日韩动漫免费观看高清完整版在线观看 | 中文字幕亚洲字幕 | 国产黄色片网站 | 少妇高潮冒白浆 | 精品国产伦一区二区三区免费 | 欧美精品久久人人躁人人爽 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久久久久人人 | 国产一区二区在线免费播放 | 伊人首页| 久久精品久久久久电影 | 在线看国产视频 | 日韩理论片在线 | 色婷婷亚洲综合 | www.天天操.com | 精品一区久久 | 色狠狠综合天天综合综合 | 国产韩国精品一区二区三区 | 99视频在线免费看 | 在线看v片| 国产视频综合在线 | 日韩三级在线 | 欧美精品一区二区免费 | 91久久偷偷做嫩草影院 | 丁香婷婷激情 | 综合色爱 | 激情中文字幕 | 久久精品看片 | 福利片免费看 | 日韩欧美电影在线观看 | 久草.com | 五月天婷亚洲天综合网精品偷 | 狠狠色丁香久久婷婷综合丁香 | 日韩av成人在线观看 | 亚洲理论在线 | 日韩免费二区 | 中文字幕精品视频 | 亚洲天堂网在线观看视频 | 成人午夜影院在线观看 | 韩国精品福利一区二区三区 | 这里只有精品视频在线观看 | 欧美小视频在线 | 日韩网站一区 | 九九免费观看视频 | 亚洲乱码一区 | 日韩在线视频在线观看 | 欧美婷婷综合 | 欧美大片大全 | 91人人爽久久涩噜噜噜 | 1024手机基地在线观看 | 精品主播网红福利资源观看 | 国产精品系列在线 | 亚洲电影黄色 | 亚洲成av片人久久久 | 黄色免费大全 | 日韩欧美视频在线播放 | 99热精品在线观看 | 欧美日韩高清一区二区 | 日韩成人中文字幕 | 天天插狠狠干 | 国产免码va在线观看免费 | 亚洲精品视频在线观看免费视频 | 免费看的黄网站软件 | 欧美日韩在线视频免费 | 黄色小说免费在线观看 | 久久久国产影视 | 91麻豆精品国产91久久久无需广告 | 久久视频免费在线观看 | 国产一区精品在线观看 | 欧美最猛性xxxxx免费 | 992tv在线 | 美女视频网 | 国产人在线成免费视频 | 亚洲区另类春色综合小说校园片 | 日韩精品在线播放 | 久久久精品久久日韩一区综合 | 六月色播| 成人h电影在线观看 | 亚洲人成在线观看 | 亚洲成人一区 | 欧美视频日韩 | 国产在线精品视频 | 精品国产1区 | 中文字幕视频免费观看 | 亚洲激情在线观看 | 日韩精品中文字幕在线 | 97国产超碰 | 六月色婷婷| 欧美日韩国产亚洲乱码字幕 | 999成人免费视频 | 成人a免费视频 | 九九热国产视频 | 精品一区二区在线观看 | 日韩免费播放 | 女人18片毛片90分钟 | 欧美日韩久久不卡 | 久久99婷婷 | av千婊在线免费观看 | 色亚洲激情| 日日夜夜天天人人 | 99免费在线观看 | 亚洲黄色精品 | 国产精品女人网站 | 免费看国产一级片 | 欧美日韩在线观看一区二区 | 99久久精品久久亚洲精品 | 国产精品欧美 | 日韩在线视 | 午夜精品一区二区三区免费 | 中文字幕丝袜 | 日韩三级视频在线观看 | 成年美女黄网站色大片免费看 | 成人a视频| 免费一级黄色 | 精品一区电影国产 | 狠狠狠狠狠狠狠干 | 色综合久 | 国产在线超碰 | 欧美美女激情18p | 香蕉网站在线观看 | 美女网站一区 | 欧美日韩性生活 | 亚洲欧美在线观看视频 | av无限看 | 久草视频免费看 | 欧美日韩三区二区 | 久久久国产电影 | 91成人免费看片 | 97国产一区二区 | 国产在线播放一区二区 | 福利网址在线观看 | 国产美女免费观看 | 国产主播99| 天天碰天天操 | 99久高清在线观看视频99精品热在线观看视频 | 一区二区三区中文字幕在线 | 久久综合99| 成+人+色综合 | 亚洲一区在线看 | 亚洲综合五月天 | 黄色一级免费电影 | 国产区av在线| 狠狠躁日日躁夜夜躁av | 91色国产 | 黄色视屏在线免费观看 | 日韩精品视频在线免费观看 | 日韩国产精品毛片 | 91精品免费 | 欧美性超爽 | 爱色婷婷 | 精品久久福利 | 日本三级久久久 | 亚洲精品18p | 激情五月婷婷网 | 国产五十路毛片 | 成人福利在线 | 天天射,天天干 | 久久激情五月激情 | 91福利影院在线观看 | 精品免费久久 | 夜夜操天天摸 | 波多野结衣在线观看一区 | 日本爽妇网 | 久久久久欠精品国产毛片国产毛生 | 人人舔人人干 | 激情五月婷婷 | 最近中文字幕高清字幕在线视频 | 日韩欧美在线综合网 | 国产在线观看一区 | 日韩精品一区二区三区三炮视频 | 黄色电影网站在线观看 | 国产69精品久久99不卡的观看体验 | 中文字幕在线观看视频一区 | 91网在线 | 日产av在线播放 | 永久免费观看视频 | 久久免费电影 | 夜夜躁日日躁狠狠久久av | 97激情影院| 麻豆精品视频 | 99久久精品免费视频 | 国产成人久久精品一区二区三区 | 久久久香蕉视频 | 日韩一区二区三免费高清在线观看 | 国产中文在线播放 | 国产第一页福利影院 | 国产亚洲综合精品 | 国产成人精品三级 | 激情伊人五月天 | 午夜av大片 | 激情偷乱人伦小说视频在线观看 | 91精品啪| 色婷婷精品大在线视频 | 日韩在线观看小视频 | 午夜精品一区二区三区可下载 | 超碰在线94 | 在线观看视频在线 | 亚洲日本欧美在线 | 蜜桃视频成人在线观看 | 久草网站在线观看 | 超碰在线人人艹 | 一级久久精品 | 五月天综合网站 | 欧美三级高清 | 99热这里只有精品8 久久综合毛片 | 国产精品国产亚洲精品看不卡15 | 99久久久| 成人蜜桃网 | 99精品在线视频播放 | av电影在线观看完整版一区二区 | 最近更新的中文字幕 | 国产黄色在线网站 | 91九色精品国产 | 日本公妇在线观看高清 | 亚洲一区二区天堂 | 最近中文国产在线视频 | 天天爱天天干天天爽 | 日韩在线电影一区 | 一级全黄毛片 | 五月婷婷视频在线观看 | 天天插天天干天天操 | 国产一线天在线观看 | 在线观看黄网站 | 国产黄色在线网站 | 中文字幕最新精品 | 日韩视频在线不卡 | 国产在线a视频 | 日韩二区在线播放 | 国产亚洲一区二区在线观看 | 伊人影院99 | 国产不卡一二三区 | 美女黄久久 | 久久精品国产成人 | 成人黄色片免费看 | 九九天堂 | 激情婷婷| 亚洲综合色激情五月 | 国内视频在线观看 | 免费一级毛毛片 | 国产成人三级三级三级97 | 日韩在线视频网 | 亚洲一级黄色av | av一二三区 | 久久一区二 | 91在线区 | 二区三区在线视频 | 成人av免费在线播放 | 97国产在线观看 | 十八岁免进欧美 | 黄色片免费电影 | 免费69视频 | 国产a级精品 | 99久久精品电影 | 五月激情综合婷婷 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品综合久久久久 | 日韩 精品 一区 国产 麻豆 | 国产在线污 | 久久中文字幕在线视频 | 人人干人人艹 | 日韩免费观看视频 | 免费久久精品视频 | 免费97视频 | 手机在线观看国产精品 | 日韩免费三区 | 91精品伦理 | 日本 在线 视频 中文 有码 | 91热爆在线观看 | av中文在线播放 | 日韩成人精品在线观看 | 在线 视频 一区二区 | 国产精品嫩草影视久久久 | 99视频网站 | 五月激情综合婷婷 | 天天干夜夜干 | 久久久国产成人 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲成av人片在线观看无 | 国产成人精品电影久久久 | 日韩精品一区二区三区免费视频观看 | 夜夜操狠狠干 | 国产在线不卡一区 | 精品国产久 | 国产专区欧美专区 | www久 | 日韩伦理片一区二区三区 | 99热精品国产 | 国产aa免费视频 | 丁香一区二区 | 国产一区在线观看免费 | 日韩在线观看小视频 | 国内精品久久久久久久影视麻豆 | 最近中文字幕第一页 | 97视频一区 | 一级黄色片在线观看 | 国产精品视频内 | 特级毛片在线免费观看 | 91久久久国产精品 | 亚洲一区二区精品3399 | 国产免费观看久久 | 天天操天天干天天综合网 | 色全色在线资源网 | 亚洲国产精品女人久久久 | 99在线看 | 九九热精品国产 | 中文字幕免费高清在线观看 | 欧美视频网址 | 在线观看免费av网 | 亚洲精品网址在线观看 | 久草久草在线观看 | 激情五月六月婷婷 | 亚洲国产综合在线 | 国色综合 | 丝袜少妇在线 | 欧美精品第一 | 国产精品免费一区二区三区 | 久久成人国产精品 | 精品一区二区在线免费观看 | 国产精品夜夜夜一区二区三区尤 | 日批视频 | 在线观看mv的中文字幕网站 | 在线免费观看涩涩 | 亚洲视频在线免费观看 | 天天爱天天操天天射 | 国产成人精品综合久久久久99 | 精品国产一区二区三区男人吃奶 | 久久99国产精品自在自在app | 国产资源av | 日本性视频 | 午夜视频在线观看欧美 | 久久这里只有精品9 | 国产高清综合 | 国产美女在线精品免费观看 | 欧美a级成人淫片免费看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久精品日本啪啪涩涩 | 亚洲国产精品久久久久婷婷884 | 午夜精品999 | 91精品推荐 | 欧美综合在线视频 | 最近中文字幕免费 | 91人人澡 | 天天躁日日躁狠狠躁av麻豆 | 久久国产欧美日韩精品 | 97成人啪啪网 | 午夜色站| 国产精品一区欧美 | 一区二区日韩av | 亚洲午夜在线视频 | 日韩a在线观看 | 国产一级免费电影 | 不卡中文字幕av | 在线有码中文字幕 | 狠狠色香婷婷久久亚洲精品 | 日本爽妇网 | 久久av伊人 | 国产一线二线三线性视频 | 日本高清xxxx| 一区二区三区四区免费视频 | 国语自产偷拍精品视频偷 | 亚洲精品在线免费看 | 日日天天av | 国产美女在线精品免费观看 | 亚洲精品美女免费 | 日韩免费一区二区三区 | 国产精品免费小视频 | 香蕉看片| 成人精品国产 | 亚洲免费观看视频 | 狠狠躁日日躁狂躁夜夜躁 | 丁香久久激情 | 91丨九色丨勾搭 | 精品国产伦一区二区三区观看体验 | 久久高清毛片 | 亚洲最新av | 欧美日韩高清一区二区三区 | 久久综合色天天久久综合图片 | 福利视频一区二区 | 五月激情婷婷丁香 | 久草在线国产 | 在线你懂的视频 | 亚洲精品播放 | 2021av在线| 中文字幕av在线免费 | 麻豆视频一区二区 | 一区二区三区四区在线免费观看 | 成人国产电影在线观看 | 91精品免费| 日韩视频免费在线观看 | 国产小视频国产精品 | 精品一区二区在线免费观看 | 波多野结衣一区二区 | 成人av资源| 久热免费在线观看 | www91在线 | 中文字幕一区二区三区久久 | 久久国产高清 | 国产免费观看久久黄 | 色丁香综合 | 国产破处视频在线播放 | 色视频在线观看免费 | 狠狠干免费 | 最近中文字幕在线播放 | 国产手机视频精品 | 在线视频你懂 | 大胆欧美gogo免费视频一二区 | 97在线观看免费视频 | 欧美亚洲三级 | 丁香花在线观看免费完整版视频 | 81精品国产乱码久久久久久 | 欧美精品亚洲精品 | 日韩免费视频在线观看 | 一区二区视频在线看 | 色香com.| 99在线热播精品免费99热 | 国产xx视频 | 日韩欧美一区视频 | 国内精品视频在线播放 | 精品播放 | 日韩性久久| 91成人蝌蚪 | 色中色亚洲 | 人人要人人澡人人爽人人dvd | 曰韩在线 | 不卡av免费在线观看 | 日韩精品国产一区 | 色婷婷电影网 | 中文字幕三区 | 深爱婷婷激情 | 丝袜美女在线 | 日韩美女黄色片 | 婷婷午夜天 | 99热最新 | 久久爱资源网 | 精品成人国产 | 7799av| 国产黄色免费 | 91桃色免费视频 | 日日天天干| 久久国产精品久久精品国产演员表 | 亚洲精品视频在线播放 | 精品福利在线 | 日韩av一区二区在线播放 | 久久99久久精品 | 久久激情视频 久久 | 中文字幕在线日 | 国产精品理论在线观看 | 欧美日韩国产精品久久 | 国产在线视频在线观看 | 欧美少妇xx | 玖玖视频网| 成人午夜电影在线播放 | 国产精品ⅴa有声小说 | 欧美日韩综合在线 | 日韩av不卡在线观看 | 久久久久久久久久久国产精品 | 国产精品一区二区果冻传媒 | 亚洲天堂毛片 | 亚洲日本在线视频观看 | 热久久免费视频 |