伊人久久大香线蕉综合影视_日韩精品少妇无码受不了_71pao成人国产永久免费视频_国产伦片中文免费观看_国产高清无码麻豆精品_九色综合伊人久久富二代_日韩黄色精品_日韩A∨精品日韩精品无码

死磕javascript的手寫面試題

2021-4-15    前端達人

1.實現(xiàn)lodash的_.get方法

function _getValue(target, valuePath, defalutVal) {
  let valueType = Object.prototype.toString.call(target)
  console.log(valueType)
  // if (valueType == "[object Array]") {
    let paths = valuePath.replace(/\[(\d+)\]/, `.$1`).split('.')
    let result = target
    for(const path of paths){
      result = Object(result)[path]
      if(result == undefined){
        return defalutVal
      }
    }
    return result
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
測試:
let obj = {
  a:{
    b:[
      {
        c:2
      }
    ]
  }
}

console.log(_getValue(obj, 'a.b[0].c')) //2 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.寫一個函數(shù)判斷兩個變量是否相等

function isEqual(res1, res2) {
  let a = getTypeOf(res1)
  let b = getTypeOf(res2)
  if(a !== b){
    return false
  }else if(a === 'base'){
    console.log('base',res1,res2)
    return res1 === res2
  } else if(a === 'array'){
    if(res1.length !== res2.length){
      console.log('array',res1,res2)
      return false
    }else{
      //遍歷數(shù)組的值比較
      for(let i =0;i<res1.length;i++){
        if(!isEqual(res1[i],res2[i])){
          console.log('array',res1[i],res2[i])
          return false
        }
      }
      return true
    }
    return true
  }else if(a === 'object'){
    let ak = Object.keys(a)
    let bk = Object.keys(b)
    if(ak.length !== bk.length){
      return false
    }else{
      for(let o in res1){
        console.log(res1[o])
        if(!isEqual(res1[o],res2[o])){
          console.log('object',res1[o],res2[o])
          return false
        }
      }
      return true
    } 
  }else if(a === 'null' || a === 'undefined'){
    console.log('null')
    return true
  }else if(a === 'function'){
    console.log('function')
    return a === b
  }
}

function getTypeOf(res) {
  let type = Object.prototype.toString.call(res)
  switch (type) {
    case "[object Array]":
      return 'array'
    case "[object Object]":
      return 'object'
    case "[object Null]":
      return 'null'
    case "[object Undefined]":
      return 'undefined'
    case "[object Number]"||"[object String]"||"[object Boolean]":
      return 'base'
    case "[object Function]":
      return 'function'
    default:
      return 'typeError'
  }
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
測試:
let a = {
  a:20,
  b:{
    c:30,
    d:[1,2,3]
  }
}
let b = {
  a:20,
  b:{
    c:30,
    d:[1,2,3]
  }
}
console.log(isEqual(a,b)) //true 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3.數(shù)組扁平化的方法

function _flat(arr){
  let result = []
  for(let i = 0;i<arr.length;i++){
    if(Array.isArray(arr[i])){
      result = result.concat(_flat(arr[i]))
    }else{
      result.push(arr[i])
    }
  }
  return result;
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
let arr = [1,2,[3,4,[5,6]]]
_flat(arr) //[1,2,3,4,5,6] 
  • 1
  • 2
//es6
function _flat2(arr){
  while(arr.some(item=>Array.isArray(item))){
    arr = [].concat(...arr)
  }
  return arr
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
let arr = [1,2,[3,4,[5,6]]]
_flat2(arr) //[1,2,3,4,5,6] 
  • 1
  • 2

4.深克隆

簡單深克隆,不考慮內置對象和函數(shù)

function deepClone(obj){
  if(typeof obj !== 'object') return
  let newObj = obj instanceof Array?[]:{}
  for(let key in obj){
      if(obj.hasOwnProperty(key)){
          newObj[key] = typeof obj[key] === 'object'?deepClone(obj[key]):obj[key]
      }
  }
  return newObj
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

復雜版深度克隆 考慮內置對象 比如date regexp 函數(shù) 以及對象的循環(huán)引用的問題

const isObject = (target) => typeof target === "object"&& target !== null;

function deepClone2(target, map = new WeakMap()) {
  console.log(target)
    if (map.get(target)) {
        return target;
    }
    // 獲取當前值的構造函數(shù):獲取它的類型
    let constructor = target.constructor;
    // 檢測當前對象target是否與正則、日期格式對象匹配
    if (/^(RegExp|Date)$/i.test(constructor.name)) {
        // 創(chuàng)建一個新的特殊對象(正則類/日期類)的實例
        return new constructor(target);  
    }
    if (isObject(target)) {
        map.set(target, true);  // 為循環(huán)引用的對象做標記
        const cloneTarget = Array.isArray(target) ? [] : {};
        for (let prop in target) {
            if (target.hasOwnProperty(prop)) {
                cloneTarget[prop] = deepClone(target[prop], map);
            }
        }
        return cloneTarget;
    } else {
        return target;
    }
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

5.數(shù)組去重

filter去重

function _unique(arr){
  return arr.filter((item,index,array)=>{
    return array.indexOf(item) === index
  })
} 
  • 1
  • 2
  • 3
  • 4
  • 5

es6 Set

function _unique2(arr){
  return [...new Set(arr)]
} 
  • 1
  • 2
  • 3

includes

function _unique3(arr){
  let newArr = []
  arr.forEach(item => {
      if(!newArr.includes(item)){
        newArr.push(item)
      }
  });
  return newArr
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

雙層for循環(huán)

function _unique4(arr){
  for(let i =0;i<arr.length;i++){
    for(let j =i+1;j<arr.length;j++){
      if(arr[i] === arr[j]){
        arr.splice(j,1)
        j--
      }
    }
  }
  return arr
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

indexof

function _unique5(arr){
  let newArr = []
  for(let i = 0;i<arr.length;i++){
    if(newArr.indexOf(arr[i] === -1){
      newArr.push(arr[i])
    })
  }
  return newArr
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

6.判斷數(shù)據(jù)的類型

function _typeOf(obj){
  let res = Object.prototype.toString.call(obj).split(' ')[1]
  let mold = res.substring(0,res.length-1).toLowerCase()
  return mold
} 
  • 1
  • 2
  • 3
  • 4
  • 5
_typeOf(5) //number
_typeOf('5') //string 
  • 1
  • 2

7.解析url參數(shù)為對象

function getParamsObj(params){
  let paramsStr = params.replace(/^.+\?(.+)/,"$1")
  let paramsArr = paramsStr.split('&')
  let paramsObj = {}

  for(let [key,value] of paramsArr.entries()){
      if(/=/.test(value)){
          let valArr = value.split('=')
          val = decodeURIComponent(valArr[1]) //解碼
          val = /^\d+$/.test(val)?parseFloat(val):val //判斷是不是數(shù)字
          if(paramsObj.hasOwnProperty(valArr[0])){
              paramsObj[valArr[0]] = [].concat(paramsObj[valArr[0]],val)
          }else{
              paramsObj[valArr[0]] = val
          }
      }  

  }
  return paramsObj
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

8.函數(shù)柯里化

//從一次傳入多個參數(shù)  編程多次調用每次傳入一個參數(shù)
function add(a, b, c, d, e) {
  return a + b + c + d + e
}

function curry(fn) {
   let dFn = (...args)=>{
     if(args.length == fn.length) return fn(...args)
     return (...arg)=>{
       return dFn(...args,...arg)
     }
   }
   return dFn
}
let addCurry = curry(add)
addCurry(1,2,3)(2)(3) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

9.圖片懶加載

//添加了兩個功能
// 圖片加載完成后 移除事件監(jiān)聽
// 加載完的圖片從imgList中移除
let imgList = [...document.querySelectorAll('img')]
let length = imgList.length

const imgLazyLoad = function () {
  let count = 0
  let deleteIndexList = []
  imgList.forEach((img, index) => {
    let rect = img.getBoundingClientRect() 
    //獲取元素到視圖的距離 top元素上邊到視圖上邊的距離 left元素左邊到視圖左邊的距離  right... bottom...
    if (rect.top < window.innerHeight) {
      // img.src = img.dataset.src
      img.src = img.getAttribute('data-src')
      deleteIndexList.push(index)
      count++
      if (count === length) {
        document.removeEventListener('scroll', imgLazyLoad)
      }
    }
  })
  imgList = imgList.filter((img, index) => !deleteIndexList.includes(index))
}
imgLazyLoad()

document.addEventListener('scroll', imgLazyLoad) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

圖片懶加載:https://juejin.cn/post/6844903856489365518#heading-19

10節(jié)流防抖

函數(shù)防抖 觸發(fā)高頻事件 事件在n后執(zhí)行,如果n秒鐘重復執(zhí)行了 則時間重置

//簡易版
function debounce(func,wait){
  let timer; 
  return function(){
    let context = this;
    let args = arguments;
    console.log(timer)
    clearTimeout(timer)
    timer = setTimeout(function(){
      func.apply(context,args)
    },wait)
  }

}
let btn = document.querySelector('button');
function aa(){
  console.log(111)
}
btn.onclick = debounce(aa,2000) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
// 復雜版
// 1.取消防抖  
// 2.立即執(zhí)行功能(點擊之后立即執(zhí)行函數(shù)  但是 wait時間之后在點擊才能在立即執(zhí)行)  
// 3.函數(shù)可能有返回值
function debounce(func,wait,immediate){
  let timer,result;

  const debounce = function () {
    const context = this
    const args = arguments

    if(timer) clearTimeout(timer)
    if(immediate){
      console.log(timer)
      var callNow = !timer
      timer = setTimeout(function () {
          timer =null
      },wait)
      if(callNow) result = func.apply(context,args)
    }else{
      timer = setTimeout(function (params) {
        result = func.apply(context,args)
      },wait)
    }
    return result
  }

  debounce.cance = function () {
    clearTimeout(timer)
    timer=null
  }

  return debounce

}

let btn = document.querySelector('button');
function aa(){
  console.log(111)
}
btn.onclick = debounce(aa,2000,true)``` 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

函數(shù)節(jié)流 觸發(fā)高頻事件 且n秒只執(zhí)行一次

//使用時間戳
function  throttle(func,wait) {
  var context,args;
  var previous = 0

  return function () {
    context = this;
    args = arguments;
    let nowDate = +new Date()
    if(nowDate-previous>wait){
      func.apply(context,arguments)
      previous = nowDate
    }
  }
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
//定時器
function throttle(func,wait) {
  var context,args;
  var timer;
  return function(){
    context = this;
    args = arguments;
    if(!timer){
      timer = setTimeout(function () {
        timer = null;
        func.apply(context,args)
      },wait)
    }
  }

} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
//組合版 options.leading 為true 立即執(zhí)行一次 options.trailing為true  結束之后執(zhí)行一次 默認為true
function throttle(func, wait ,options = {}) {
  var context, args, timer,result;
  var previous = 0;

  var later = function () {
    previous = options.leading === false ? 0 : new Date().getTime();
    timer = null;
    func.apply(context, args)
    if (!timer) context = args = null;
  }

  var throttle = function () {
    var now = new Date().getTime()
    if (!previous && options.leading === false) previous = now;
    context = this;
    args = arguments;

    //下次觸發(fā) func 剩余的時間
    var remaining = wait - (now - previous);
    if (remaining <= 0 || remaining > wait) {
      // if (timer) {
      //   clearTimeout(timer);
      //   timer = null;
      // }
      previous = now;
      func.apply(context, args);
      if (!timer) context = args = null;
    } else if (!timer&& options.trailing !== false) {
      timer = setTimeout(later, remaining);
    }
  }

  throttled.cancel = function() {
    clearTimeout(timer);
    previous = 0;
    timer = null;
  }

  return throttle
}

function aa(e) {
  console.log(111)
  console.log(e)
}

let btn = document.querySelector('button');
btn.onclick = throttle(aa, 2000,{
  leading:false,
  trailing:true 

})

轉自:csdn論壇 作者:Selfimpr歐

日歷

鏈接

個人資料

藍藍設計的小編 http://www.cqzjtgb.com

存檔

一本大道久久a久久精品| 亚洲av美国av| 亚洲图色成人| 亚洲欧美清纯卡通| 99久久99久久久精品蜜桃| 在线观看免费高清a一片| 欧美大码av| 看免费av毛片| 青春草亚洲视频在线观看| 久久久久精品国产欧美久久久 | 国产福利在线免费观看视频| 日韩一本色道免费dvd| 在线观看www视频免费| 激情五月婷婷亚洲| 亚洲色图综合在线观看| 99九九在线精品视频| 不卡av一区二区三区| 欧美日韩av久久| 麻豆乱淫一区二区| 久久久久国产精品人妻一区二区| 一级黄片播放器| 亚洲av综合色区一区| 少妇粗大呻吟视频| 新久久久久国产一级毛片| 巨乳人妻的诱惑在线观看| 最黄视频免费看| 老司机影院毛片| www.999成人在线观看| 97在线人人人人妻| 免费看av在线观看网站| 免费看av在线观看网站| 亚洲伊人色综图| 成年女人毛片免费观看观看9 | 久久精品国产亚洲av高清一级| 又大又爽又粗| 别揉我奶头~嗯~啊~动态视频 | 中文字幕色久视频| √禁漫天堂资源中文www| 久久久久久久精品精品| 一区二区三区乱码不卡18| 国产片特级美女逼逼视频| 亚洲欧美中文字幕日韩二区| 欧美成人午夜精品| 999精品在线视频| 国产欧美日韩一区二区三区在线| 国产淫语在线视频| 国产日韩欧美在线精品| 国产爽快片一区二区三区| 80岁老熟妇乱子伦牲交| 国产欧美日韩一区二区三 | 精品人妻一区二区三区麻豆| 久久精品aⅴ一区二区三区四区| 人妻一区二区av| 人人妻人人澡人人爽人人夜夜| 亚洲一码二码三码区别大吗| 久久精品成人免费网站| 女警被强在线播放| 熟女少妇亚洲综合色aaa.| 午夜激情久久久久久久| 久久热在线av| 9191精品国产免费久久| 午夜激情av网站| 建设人人有责人人尽责人人享有的| 国产爽快片一区二区三区| 精品一品国产午夜福利视频| 国产在线免费精品| 欧美精品人与动牲交sv欧美| 国产黄频视频在线观看| 亚洲欧洲国产日韩| 国产精品三级大全| 高潮久久久久久久久久久不卡| av电影中文网址| 欧美亚洲日本最大视频资源| 午夜影院在线不卡| 亚洲av美国av| 亚洲国产精品一区二区三区在线| 免费在线观看黄色视频的| av网站在线播放免费| 久久青草综合色| 手机成人av网站| 成人国产一区最新在线观看 | 又粗又硬又长又爽又黄的视频| 久久99热这里只频精品6学生| 热99国产精品久久久久久7| 国产亚洲午夜精品一区二区久久| 中文字幕av电影在线播放| 欧美 亚洲 国产 日韩一| 欧美精品亚洲一区二区| 丁香六月天网| kizo精华| 日韩熟女老妇一区二区性免费视频| 丝袜人妻中文字幕| av片东京热男人的天堂| 91老司机精品| 91九色精品人成在线观看| 在线观看www视频免费| 午夜影院在线不卡| 国产精品二区激情视频| 一级片免费观看大全| 在线av久久热| 啦啦啦中文免费视频观看日本| 亚洲精品一卡2卡三卡4卡5卡 | 伊人久久大香线蕉亚洲五| avwww免费| 丝袜美腿诱惑在线| 国产一区二区三区av在线| 美女扒开内裤让男人捅视频| 99国产精品99久久久久| 97人妻天天添夜夜摸| 18禁观看日本| 18禁国产床啪视频网站| 精品国产乱码久久久久久男人| 超色免费av| 亚洲精品国产一区二区精华液| 高清不卡的av网站| 一二三四在线观看免费中文在| 亚洲精品一区蜜桃| 国产成人一区二区在线| 中国美女看黄片| 少妇的丰满在线观看| 久久精品久久精品一区二区三区| 一边摸一边抽搐一进一出视频| www.自偷自拍.com| 亚洲第一青青草原| 欧美在线一区亚洲| 日本一区二区免费在线视频| √禁漫天堂资源中文www| 欧美日韩国产mv在线观看视频| 黄色片一级片一级黄色片| 精品熟女少妇八av免费久了| 一级片'在线观看视频| 欧美日韩综合久久久久久| 亚洲精品美女久久av网站| 国产精品麻豆人妻色哟哟久久| 老司机亚洲免费影院| av网站在线播放免费| 国产欧美日韩综合在线一区二区| 国产国语露脸激情在线看| 99热国产这里只有精品6| 中文字幕人妻熟女乱码| 午夜av观看不卡| 母亲3免费完整高清在线观看| 欧美日韩综合久久久久久| 大香蕉久久网| 日韩大码丰满熟妇| 亚洲国产av影院在线观看| 国产高清国产精品国产三级| 亚洲欧美一区二区三区久久| 婷婷色av中文字幕| 少妇被粗大的猛进出69影院| 欧美激情高清一区二区三区| 美女主播在线视频| 精品一区二区三区av网在线观看 | 亚洲av日韩精品久久久久久密 | 脱女人内裤的视频| 777久久人妻少妇嫩草av网站| 精品亚洲成国产av| 国产精品.久久久| 婷婷色麻豆天堂久久| 亚洲国产欧美在线一区| 中文字幕av电影在线播放| 黄网站色视频无遮挡免费观看| 欧美在线黄色| 黑丝袜美女国产一区| 午夜av观看不卡| av一本久久久久| 国产在视频线精品| 国产成人欧美| 亚洲精品一二三| 亚洲黑人精品在线| 性少妇av在线| 50天的宝宝边吃奶边哭怎么回事| 亚洲欧美一区二区三区国产| 国产xxxxx性猛交| 最近中文字幕2019免费版| 日本色播在线视频| 精品一区二区三区av网在线观看 | 夫妻性生交免费视频一级片| 18在线观看网站| 国产激情久久老熟女| 亚洲中文日韩欧美视频| 亚洲熟女毛片儿| tube8黄色片| 亚洲人成77777在线视频| 十八禁人妻一区二区| 亚洲综合色网址| 高清欧美精品videossex| 18禁观看日本| 十八禁网站网址无遮挡| 老鸭窝网址在线观看| 爱豆传媒免费全集在线观看| 99久久99久久久精品蜜桃| 蜜桃国产av成人99| 18禁国产床啪视频网站| 亚洲av欧美aⅴ国产| 午夜老司机福利片| 国产高清videossex| 欧美精品啪啪一区二区三区 | 亚洲精品一卡2卡三卡4卡5卡 | 国产日韩欧美视频二区| 亚洲国产毛片av蜜桃av| 人人妻人人澡人人爽人人夜夜| 99精品久久久久人妻精品| www.熟女人妻精品国产| 日本欧美国产在线视频| 国产在线观看jvid| 欧美日韩亚洲综合一区二区三区_| 国产极品粉嫩免费观看在线| 久久午夜综合久久蜜桃| 美女国产高潮福利片在线看| 97在线人人人人妻| 天天添夜夜摸| 18禁黄网站禁片午夜丰满| 亚洲欧美日韩高清在线视频 | 亚洲av成人精品一二三区| 伦理电影免费视频| 国产精品一区二区精品视频观看| 美女中出高潮动态图| 精品国产乱码久久久久久男人| 精品国产一区二区久久| 亚洲色图综合在线观看| 丝袜在线中文字幕| 国产午夜精品一二区理论片| 成年美女黄网站色视频大全免费| 一本色道久久久久久精品综合| 欧美日韩av久久| 久久毛片免费看一区二区三区| 视频在线观看一区二区三区| 国产精品免费大片| 亚洲国产精品成人久久小说| 天天躁狠狠躁夜夜躁狠狠躁| 国产一区二区激情短视频 | 日韩伦理黄色片| 真人做人爱边吃奶动态| 亚洲精品国产区一区二| 91精品三级在线观看| 18在线观看网站| www.熟女人妻精品国产| 亚洲国产欧美日韩在线播放| 亚洲精品一区蜜桃| 肉色欧美久久久久久久蜜桃| 大话2 男鬼变身卡| 一本色道久久久久久精品综合| 我的亚洲天堂| av电影中文网址| 人人妻,人人澡人人爽秒播 | 精品久久蜜臀av无| 亚洲自偷自拍图片 自拍| 一个人免费看片子| 日本a在线网址| 亚洲免费av在线视频| 欧美乱码精品一区二区三区| 成年av动漫网址| 国产精品.久久久| 午夜老司机福利片| av不卡在线播放| 国产xxxxx性猛交| 国产成人精品久久久久久| 又粗又硬又长又爽又黄的视频| 亚洲精品日本国产第一区| 在线观看免费视频网站a站| 国产黄色免费在线视频| 国产精品欧美亚洲77777| 老司机深夜福利视频在线观看 | 天天躁狠狠躁夜夜躁狠狠躁| 男女免费视频国产| 一本—道久久a久久精品蜜桃钙片| 免费一级毛片在线播放高清视频 | 久久国产精品大桥未久av| 在线观看免费午夜福利视频| 国产成人a∨麻豆精品| 亚洲av在线观看美女高潮| 成人亚洲欧美一区二区av| 日韩制服骚丝袜av| 一本久久精品| 丝袜喷水一区| 免费高清在线观看日韩| 老司机午夜十八禁免费视频| av电影中文网址| 精品亚洲成国产av| 男女免费视频国产| www.熟女人妻精品国产| 亚洲精品成人av观看孕妇| 午夜免费观看性视频| 母亲3免费完整高清在线观看| 国产激情久久老熟女| 国产精品久久久久成人av| 精品亚洲乱码少妇综合久久| 中文字幕另类日韩欧美亚洲嫩草| av片东京热男人的天堂| 亚洲情色 制服丝袜| 欧美成人精品欧美一级黄| 五月开心婷婷网| 成人国语在线视频| 日本欧美国产在线视频| 欧美黑人精品巨大| 婷婷色麻豆天堂久久| 免费在线观看日本一区| 亚洲图色成人| 精品国产乱码久久久久久男人| 大码成人一级视频| 手机成人av网站| 热99久久久久精品小说推荐| 国产黄色免费在线视频| 久久青草综合色| 亚洲少妇的诱惑av| 久久人妻熟女aⅴ| 婷婷丁香在线五月| 日韩中文字幕欧美一区二区 | 亚洲情色 制服丝袜| 国产高清视频在线播放一区 | 国产精品 国内视频| 国产人伦9x9x在线观看| 一边摸一边做爽爽视频免费| 少妇被粗大的猛进出69影院| 后天国语完整版免费观看| 精品卡一卡二卡四卡免费| 男人添女人高潮全过程视频| 亚洲精品日韩在线中文字幕| 校园人妻丝袜中文字幕| 免费黄频网站在线观看国产| 久久精品国产亚洲av高清一级| 欧美精品av麻豆av| www.自偷自拍.com| av网站免费在线观看视频| 日日夜夜操网爽| 嫩草影视91久久| 久久久亚洲精品成人影院| 校园人妻丝袜中文字幕| av在线老鸭窝| 伊人亚洲综合成人网| 久久久久精品国产欧美久久久 | 欧美 亚洲 国产 日韩一| 欧美变态另类bdsm刘玥| 欧美日韩福利视频一区二区| 9191精品国产免费久久| 日韩精品免费视频一区二区三区| 超色免费av| 天堂8中文在线网| 国产精品国产三级国产专区5o| 久久亚洲精品不卡| 午夜av观看不卡| 99久久99久久久精品蜜桃| 丁香六月天网| 天天操日日干夜夜撸| 国产精品欧美亚洲77777| 热re99久久精品国产66热6| 午夜福利免费观看在线| 国产97色在线日韩免费| 国产片特级美女逼逼视频| 在线观看免费视频网站a站| 中文字幕另类日韩欧美亚洲嫩草| av网站在线播放免费| 妹子高潮喷水视频| 天天添夜夜摸| av网站在线播放免费| 国产精品久久久久久精品古装| 大陆偷拍与自拍| 国产精品欧美亚洲77777| 老司机靠b影院| 久久人妻福利社区极品人妻图片 | 欧美97在线视频| 国产精品偷伦视频观看了| 丰满少妇做爰视频| 午夜福利乱码中文字幕| 婷婷色综合大香蕉| 一本久久精品| 深夜精品福利| 高清视频免费观看一区二区| 久9热在线精品视频| 亚洲欧美清纯卡通| 亚洲成人国产一区在线观看 | 久久人人97超碰香蕉20202| 在线看a的网站| 9色porny在线观看| 亚洲欧美色中文字幕在线| 欧美日韩成人在线一区二区| 女人爽到高潮嗷嗷叫在线视频| 欧美激情 高清一区二区三区| 国产97色在线日韩免费| 悠悠久久av| 99国产精品一区二区蜜桃av | 在线看a的网站| 女警被强在线播放| 黄色视频在线播放观看不卡| 亚洲男人天堂网一区| 中文字幕色久视频| 999精品在线视频| 国产成人精品无人区| 99九九在线精品视频| 精品少妇黑人巨大在线播放| 极品人妻少妇av视频| 国产精品国产三级国产专区5o| 狠狠婷婷综合久久久久久88av| 激情五月婷婷亚洲| 三上悠亚av全集在线观看| 成人午夜精彩视频在线观看| 久久狼人影院| 国产精品一国产av| 欧美人与性动交α欧美软件| 成人午夜精彩视频在线观看| 又大又黄又爽视频免费| 亚洲欧美精品综合一区二区三区| 久久精品人人爽人人爽视色| 亚洲欧洲精品一区二区精品久久久| 久久精品国产a三级三级三级| 伊人亚洲综合成人网| 久久精品国产综合久久久| 精品人妻在线不人妻| 操出白浆在线播放| 下体分泌物呈黄色| 美女高潮到喷水免费观看| 自拍欧美九色日韩亚洲蝌蚪91| 欧美成人精品欧美一级黄| 亚洲精品日韩在线中文字幕| 夜夜骑夜夜射夜夜干| 亚洲人成网站在线观看播放| 菩萨蛮人人尽说江南好唐韦庄| 黄网站色视频无遮挡免费观看| 你懂的网址亚洲精品在线观看| 一级毛片女人18水好多 | 看免费成人av毛片| 色综合欧美亚洲国产小说| 中文字幕制服av| 一级片免费观看大全| 男男h啪啪无遮挡| 国产av一区二区精品久久| 日本一区二区免费在线视频| 一二三四在线观看免费中文在| 成在线人永久免费视频| 人人妻人人添人人爽欧美一区卜| 美女午夜性视频免费| 香蕉国产在线看| 国产1区2区3区精品| 国产日韩欧美亚洲二区| 成人黄色视频免费在线看| 精品卡一卡二卡四卡免费| 国产精品麻豆人妻色哟哟久久| 少妇裸体淫交视频免费看高清 | 国产欧美日韩一区二区三区在线| 电影成人av| 亚洲国产最新在线播放| 啦啦啦 在线观看视频| 一级毛片电影观看| 男女午夜视频在线观看| 久久99精品国语久久久| 亚洲自偷自拍图片 自拍| 国产在线视频一区二区| svipshipincom国产片| 亚洲精品国产av蜜桃| 汤姆久久久久久久影院中文字幕| 高清欧美精品videossex| 亚洲中文av在线| 天堂8中文在线网| 久久亚洲精品不卡| 首页视频小说图片口味搜索 | 亚洲色图 男人天堂 中文字幕| 老司机亚洲免费影院| 国产成人精品在线电影| av天堂久久9| 成人亚洲欧美一区二区av| 久久久久久久久久久久大奶| 天天躁日日躁夜夜躁夜夜| 欧美日本中文国产一区发布| 久久久精品94久久精品| 97在线人人人人妻| 在线观看免费午夜福利视频| 麻豆乱淫一区二区| 亚洲av欧美aⅴ国产| 欧美人与性动交α欧美软件| 亚洲男人天堂网一区| 亚洲国产中文字幕在线视频| 欧美成人精品欧美一级黄| 免费女性裸体啪啪无遮挡网站| 欧美在线一区亚洲| 日本欧美国产在线视频| 久久人妻熟女aⅴ| 高清欧美精品videossex| 人人妻人人爽人人添夜夜欢视频| 黑人欧美特级aaaaaa片| 人人妻人人爽人人添夜夜欢视频| 日本av手机在线免费观看| 欧美人与善性xxx| 丰满迷人的少妇在线观看| 亚洲久久久国产精品| 亚洲精品久久午夜乱码| 深夜精品福利| 一区二区三区四区激情视频| www.av在线官网国产| 国产免费视频播放在线视频| 国产欧美亚洲国产| 欧美日韩视频高清一区二区三区二| 久久天堂一区二区三区四区| 男女边吃奶边做爰视频| 亚洲国产看品久久| 男女边吃奶边做爰视频| 国产欧美日韩一区二区三 | 国产精品.久久久| 国产av国产精品国产| a级片在线免费高清观看视频| 成人影院久久| 亚洲男人天堂网一区| 亚洲,一卡二卡三卡| 日韩熟女老妇一区二区性免费视频| 高清不卡的av网站| 亚洲国产日韩一区二区| 丰满迷人的少妇在线观看| 精品人妻熟女毛片av久久网站| 2018国产大陆天天弄谢| 午夜影院在线不卡| 国产男女内射视频| 国产av一区二区精品久久| 久久久精品94久久精品| 亚洲视频免费观看视频| 大片电影免费在线观看免费| 国产午夜精品一二区理论片| 国产高清videossex| 欧美黄色片欧美黄色片| 天堂8中文在线网| 亚洲国产日韩一区二区| 午夜福利视频精品| 成人免费观看视频高清| 脱女人内裤的视频| 捣出白浆h1v1| 国精品久久久久久国模美| 久久毛片免费看一区二区三区| 夫妻午夜视频| av视频免费观看在线观看| 欧美另类一区| 精品一品国产午夜福利视频| 国产精品免费大片| 国产xxxxx性猛交| 2018国产大陆天天弄谢| 午夜影院在线不卡| 一本色道久久久久久精品综合| 亚洲伊人色综图| 99精品久久久久人妻精品| 又紧又爽又黄一区二区| 丝袜人妻中文字幕| 亚洲成人免费电影在线观看 | 国产精品久久久久久精品电影小说| 99国产精品一区二区蜜桃av | 亚洲成人免费电影在线观看 | 久久久久久久大尺度免费视频| 久久精品亚洲av国产电影网| 国产精品一二三区在线看| 亚洲五月色婷婷综合| 久久人妻熟女aⅴ| 2021少妇久久久久久久久久久| 成人亚洲精品一区在线观看| 久久久久精品国产欧美久久久 | 午夜两性在线视频| 日本午夜av视频| 国产在线一区二区三区精| 亚洲国产中文字幕在线视频| 丁香六月天网| 亚洲国产中文字幕在线视频| 亚洲男人天堂网一区| 高清不卡的av网站| 人体艺术视频欧美日本| 老司机在亚洲福利影院| 嫁个100分男人电影在线观看 | 免费观看a级毛片全部| 丝袜脚勾引网站| 午夜av观看不卡| av在线app专区| xxx大片免费视频| 一区二区日韩欧美中文字幕| 伦理电影免费视频| 美女高潮到喷水免费观看| 9191精品国产免费久久| 男女免费视频国产| 国产精品一二三区在线看| 国产精品秋霞免费鲁丝片| 欧美在线黄色| 久久久久久久久免费视频了| 90打野战视频偷拍视频| 久久精品国产综合久久久| 视频区欧美日本亚洲| 在线观看免费高清a一片| 国产精品.久久久| 久久精品国产综合久久久| 国产免费福利视频在线观看| 亚洲成人免费电影在线观看 | 亚洲专区国产一区二区| 国产精品 国内视频| 天堂俺去俺来也www色官网| 一区在线观看完整版| 国产精品国产三级国产专区5o| 亚洲av国产av综合av卡| 超碰97精品在线观看| 亚洲成国产人片在线观看| 久久毛片免费看一区二区三区| 日日夜夜操网爽| 国产成人精品久久二区二区91| 亚洲欧美日韩另类电影网站| 操出白浆在线播放| 男女无遮挡免费网站观看| 91老司机精品| 丝袜美腿诱惑在线| 97人妻天天添夜夜摸| 一区在线观看完整版| 成人国产一区最新在线观看 | 欧美av亚洲av综合av国产av| 黑人猛操日本美女一级片| 国产成人一区二区在线| 男男h啪啪无遮挡| 亚洲七黄色美女视频| 麻豆乱淫一区二区| 乱人伦中国视频| 国产精品 国内视频| 性色av一级| 欧美日韩一级在线毛片| 国产日韩欧美亚洲二区| 大片电影免费在线观看免费|