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

21個(gè)簡(jiǎn)單而實(shí)用的 JavaScript 代碼片段

開發(fā) 前端
關(guān)于JavaScript的技巧,我們?cè)谥暗膬?nèi)容中也分享過很多,希望今天這期內(nèi)容能夠給你帶來新的知識(shí),從中學(xué)習(xí)到新內(nèi)容,那么,我們現(xiàn)在開始吧。

關(guān)于JavaScript的技巧,我們?cè)谥暗膬?nèi)容中也分享過很多,希望今天這期內(nèi)容能夠給你帶來新的知識(shí),從中學(xué)習(xí)到新內(nèi)容,那么,我們現(xiàn)在開始吧。

1. 滾動(dòng)到頁面頂部

我們可以使用 window.scrollTo() 平滑滾動(dòng)到頁面頂部。

const scrollToTop = () => {
  window.scrollTo({ top: 0, left: 0, behavior: "smooth" });
};

2. 滾動(dòng)到頁面底部

當(dāng)然,如果知道文檔的高度,也可以平滑滾動(dòng)到頁面底部。

const scrollToBottom = () => {
  window.scrollTo({
    top: document.documentElement.offsetHeight,
    left: 0,
    behavior: "smooth",
  });
};

3. 滾動(dòng)元素到可見區(qū)域

有時(shí)我們需要將元素滾動(dòng)到可見區(qū)域,該怎么辦? 使用scrollIntoView就足夠了。

const smoothScroll = (element) => {
  element.scrollIntoView({
    behavior: "smooth",
  });
};

4.全屏顯示元素

你一定遇到過這樣的場(chǎng)景,你需要全屏播放視頻并在瀏覽器中全屏打開頁面。

const goToFullScreen = (element) => {
  element = element || document.body;
  if (element.requestFullscreen) {
    element.requestFullscreen();
  } else if (element.mozRequestFullScreen) {
    element.mozRequestFullScreen();
  } else if (element.msRequestFullscreen) {
    element.msRequestFullscreen();
  } else if (element.webkitRequestFullscreen) {
    element.webkitRequestFullScreen();
  }
};

5.退出瀏覽器全屏狀態(tài)

是的,這個(gè)和第四點(diǎn)一起使用,你也會(huì)出現(xiàn)退出瀏覽器全屏狀態(tài)的場(chǎng)景。

const goExitFullscreen = () => {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen();
  } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
  } else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen();
  }
};

6.獲取數(shù)據(jù)類型

如何通過函數(shù)獲取變量的數(shù)據(jù)類型?

const getType = (value) => {
  const match = Object.prototype.toString.call(value).match(/ (\w+)]/)
  return match[1].toLocaleLowerCase()
}


getType() // undefined
getType({}}) // object
getType([]) // array
getType(1) // number
getType('fatfish') // string
getType(true) // boolean
getType(/fatfish/) // regexp

7.停止冒泡事件

需要一種適用于所有平臺(tái)的防止事件冒泡的方法。

const stopPropagation = (event) => {
  event = event || window.event;
  if (event.stopPropagation) {
    event.stopPropagation();
  } else {
    event.cancelBubble = true;
  }
};

8. 深拷貝對(duì)象

如何復(fù)制深度嵌套的對(duì)象?

const deepCopy = (obj, hash = new WeakMap()) => {
  if (obj instanceof Date) {
    return new Date(obj);
  }
  if (obj instanceof RegExp) {
    return new RegExp(obj);
  }
  if (hash.has(obj)) {
    return hash.get(obj);
  }
  let allDesc = Object.getOwnPropertyDescriptors(obj);
  let cloneObj = Object.create(Object.getPrototypeOf(obj), allDesc);
  hash.set(obj, cloneObj);
  for (let key of Reflect.ownKeys(obj)) {
    if (obj[key] && typeof obj[key] === "object") {
      cloneObj[key] = deepCopy(obj[key], hash);
    } else {
      cloneObj[key] = obj[key];
    }
  }
  return cloneObj;
};

9. 確定設(shè)備類型

我們經(jīng)常需要這樣做,以便在手機(jī)上顯示 A 邏輯,在 PC 上顯示 B 邏輯。 基本上,設(shè)備類型是通過識(shí)別瀏覽器的 userAgent 來確定的。

const isMobile = () => {
  return !!navigator.userAgent.match(
    /(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i
  );
};

10.判斷設(shè)備是Android還是IOS

除了區(qū)分是手機(jī)還是PC之外,很多時(shí)候我們還需要區(qū)分當(dāng)前設(shè)備是Android還是IOS。

const isAndroid = () => {
  return /android/i.test(navigator.userAgent.toLowerCase());
};


const isIOS = () => {
  let reg = /iPhone|iPad|iPod|iOS|Macintosh/i;
  return reg.test(navigator.userAgent.toLowerCase());
};

11.獲取瀏覽器類型及其版本

作為前端開發(fā)人員,你可能會(huì)遇到各種兼容性問題。 這時(shí),你可能需要獲取瀏覽器的類型和版本。

const getExplorerInfo = () => {
  let t = navigator.userAgent.toLowerCase();
  return 0 <= t.indexOf("msie")
    ? {
        //ie < 11
        type: "IE",
        version: Number(t.match(/msie ([\d]+)/)[1]),
      }
    : !!t.match(/trident\/.+?rv:(([\d.]+))/)
    ? {
        // ie 11
        type: "IE",
        version: 11,
      }
    : 0 <= t.indexOf("edge")
    ? {
        type: "Edge",
        version: Number(t.match(/edge\/([\d]+)/)[1]),
      }
    : 0 <= t.indexOf("firefox")
    ? {
        type: "Firefox",
        version: Number(t.match(/firefox\/([\d]+)/)[1]),
      }
    : 0 <= t.indexOf("chrome")
    ? {
        type: "Chrome",
        version: Number(t.match(/chrome\/([\d]+)/)[1]),
      }
    : 0 <= t.indexOf("opera")
    ? {
        type: "Opera",
        version: Number(t.match(/opera.([\d]+)/)[1]),
      }
    : 0 <= t.indexOf("Safari")
    ? {
        type: "Safari",
        version: Number(t.match(/version\/([\d]+)/)[1]),
      }
    : {
        type: t,
        version: -1,
      };
};

12.設(shè)置cookie

cookie可能是我見過的最糟糕的API,它太難用了,我們不得不重新封裝它以最大限度地提高我們的開發(fā)效率。

const setCookie = (key, value, expire) => {
  const d = new Date();
  d.setDate(d.getDate() + expire);
  document.cookie = `${key}=${value};expires=${d.toUTCString()}`;
};

13.獲取cookies

除了對(duì)cookie進(jìn)行寫入之外,我們還會(huì)涉及到它的讀取操作。

const getCookie = (key) => {
  const cookieStr = unescape(document.cookie);
  const arr = cookieStr.split("; ");
  let cookieValue = "";
  for (let i = 0; i < arr.length; i++) {
    const temp = arr[i].split("=");
    if (temp[0] === key) {
      cookieValue = temp[1];
      break;
    }
  }
  return cookieValue;
};

14.刪除cookies

刪除cookie的想法是什么? 其實(shí)只要將它的過期時(shí)間設(shè)置為此時(shí),它就會(huì)立即過期。

const delCookie = (key) => {
  document.cookie = `${encodeURIComponent(key)}=;expires=${new Date()}`;
};

15. 生成隨機(jī)字符串

不知道大家有沒有遇到過需要生成隨機(jī)字符串的場(chǎng)景。 我遇到過很多次了,每次都要重新google一遍,直到學(xué)會(huì)這個(gè)工具功能。

const randomString = (len) => {
  let chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz123456789";
  let strLen = chars.length;
  let randomStr = "";
  for (let i = 0; i < len; i++) {
    randomStr += chars.charAt(Math.floor(Math.random() * strLen));
  }
  return randomStr;
};


randomString(10) // pfkMfjEJ6x
randomString(20) // ce6tEx1km4idRNMtym2S

16. 將字符串的第一個(gè)字母大寫

const fistLetterUpper = (str) => {
  return str.charAt(0).toUpperCase() + str.slice(1);
};


fistLetterUpper('fatfish') // Fatfish

17.生成指定范圍內(nèi)的隨機(jī)數(shù)

也許出于測(cè)試目的,我經(jīng)常需要生成一定范圍內(nèi)的隨機(jī)數(shù)。

const randomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;


randomNum(1, 10) // 6
randomNum(10, 20) // 11

18. 打亂數(shù)組的順序

如何打亂數(shù)組原來的順序?

const shuffleArray = (array) => {
  return array.sort(() => 0.5 - Math.random())
}


let arr = [ 1, -1, 10, 5 ]


shuffleArray(arr) // [5, -1, 10, 1]
shuffleArray(arr) // [1, 10, -1, 5]

19. 從數(shù)組中獲取隨機(jī)值

之前做過一個(gè)抽獎(jiǎng)項(xiàng)目,需要讓數(shù)組中的獎(jiǎng)品隨機(jī)出現(xiàn)。

const getRandomValue = array => array[Math.floor(Math.random() * array.length)]; 
const prizes = [  '$100', '??', '??' ]


getRandomValue(prizes) // ??
getRandomValue(prizes) // ??
getRandomValue(prizes) // ??

20.第一種格式化貨幣的方式

貨幣格式化的方式有很多種,比如這兩種方式。

const formatMoney = (money) => {
  return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${money.includes('.') ? '\\.' : '$'})`, 'g'), ',')  
}


formatMoney('123456789') // '123,456,789'
formatMoney('123456789.123') // '123,456,789.123'
formatMoney('123') // '123'

21.第二種格式化貨幣的方式

正則表達(dá)式讓我們太頭疼了不是嗎? 因此,我們需要找到一種更簡(jiǎn)單的方式來格式化貨幣。

const formatMoney = (money) => {
  return money.toLocaleString()
}


formatMoney(123456789) // '123,456,789'
formatMoney(123456789.123) // '123,456,789.123'
formatMoney(123) // '123'

我太喜歡這種方式了,簡(jiǎn)單易懂。

總結(jié)

以上就是我想與你分享的21個(gè)關(guān)于JS的代碼技巧,希望這些代碼片段能夠幫助你提升工作效率。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2023-06-16 16:34:25

JavaScripWeb 開發(fā)

2023-11-03 16:02:00

JavaScript開發(fā)

2023-05-04 23:54:02

JavaScrip代碼技巧

2021-09-17 15:31:47

代碼JavaScript數(shù)組

2011-07-07 10:35:53

htaccess

2015-10-08 08:53:46

PHP代碼片段

2015-11-02 09:25:07

jQuery代碼片段

2011-07-14 10:07:19

PHP

2024-04-09 00:00:00

Java代碼片段

2022-06-08 08:55:15

JavaScript代碼前端

2020-11-16 16:04:42

CSS設(shè)計(jì)代碼

2011-07-11 10:16:07

JavaScript

2023-05-22 15:53:06

JavaScrip代碼素材

2023-10-10 16:16:05

JavaScrip開發(fā)

2023-10-09 14:48:06

2024-06-21 11:02:16

2011-03-31 11:40:13

SQL

2023-12-26 14:28:08

JavaScript開發(fā)

2020-08-31 08:35:10

JavaScript

2012-06-14 09:15:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

粉嫩av在线播放| 潘金莲一级淫片aaaaaa播放| 999国产精品一区| 天天影视网天天综合色在线播放| 免费精品视频一区| 136福利视频导航| 亚洲午夜电影| 一区二区成人精品| 在线观看一区二区三区四区| 日韩av福利| 亚洲女性喷水在线观看一区| 久久大片网站| 精品人妻一区二区三区日产乱码 | 成人av在线一区二区| 日韩av电影免费观看高清| 国产真实乱在线更新| 亚州精品视频| 欧美成人三级电影在线| 簧片在线免费看| 99热99re6国产在线播放| 中文成人av在线| 久久99国产精品| 精品欧美在线观看| 麻豆91在线播放免费| 欧美又大又粗又长| 免费中文字幕视频| 亚洲免费二区| 在线观看国产成人av片| 亚洲av无码国产精品久久| 66精品视频在线观看| 欧美一区二区视频在线观看| 超碰在线播放91| 三上悠亚亚洲一区| 欧美日韩免费看| 青青草精品视频在线| 午夜小视频福利在线观看| 国产精品精品国产色婷婷| 日韩精品第一页| 三级国产在线观看| 91美女片黄在线| 精品久久久久久一区| 亚洲精品一区二区三区区别| 韩国v欧美v亚洲v日本v| 成人精品一区二区三区电影免费 | 日韩av一二三区| 中文无码久久精品| 久久99精品久久久久久琪琪| 国产激情无码一区二区三区| 日本一二区不卡| 色爱av美腿丝袜综合粉嫩av| 日本午夜精品视频| 97人人精品| 啊v视频在线一区二区三区| 欧美一区二区三区粗大| 成人综合久久| 日韩在线播放一区| 无码人妻精品一区二区三区夜夜嗨| 欧美电影免费观看高清| 久久综合九色九九| 青青草成人免费| 极品少妇一区二区三区| 韩国精品美女www爽爽爽视频| 黄色激情视频在线观看| 国产亚洲成人一区| 国产精品999999| 怡红院成永久免费人全部视频| 喷水一区二区三区| 91免费精品国偷自产在线| 国产熟女一区二区三区四区| 国产精品69久久久久水密桃| 春色成人在线视频| 欧美日韩在线中文字幕| 中文字幕欧美日本乱码一线二线| 一区二区三区一级片| 久草在线视频网站| 欧美性生活大片免费观看网址| 日本成人黄色网| 亚洲精品tv| 精品国产乱码久久| 熟女俱乐部一区二区| 日韩午夜电影网| 欧美精品一区二区免费| 久久久久久久黄色片| 蜜臀av国产精品久久久久| 91在线网站视频| 视频一区 中文字幕| 久久精品在线观看| 天堂а√在线中文在线| 中文一区一区三区高中清不卡免费| 欧美午夜影院一区| 深夜视频在线观看| 免费观看不卡av| 久久99久久99精品中文字幕| 国产尤物在线视频| 激情五月婷婷综合网| 精品不卡在线| 美女羞羞视频在线观看| 精品magnet| 亚洲18在线看污www麻豆 | 欧美成人ⅴideosxxxxx| 6080yy午夜一二三区久久| 大乳护士喂奶hd| 婷婷亚洲综合| 日本国产欧美一区二区三区| 91在线视频国产| 26uuuu精品一区二区| 国产欧美自拍视频| 国产另类xxxxhd高清| 日韩精品中午字幕| 人人艹在线视频| 久久久久国产精品一区三寸| 懂色一区二区三区av片| 幼a在线观看| 91久久精品日日躁夜夜躁欧美| 亚洲成a人无码| 欧美电影《睫毛膏》| 欧美又大又粗又长| 黄片毛片在线看| 亚洲乱码国产乱码精品精可以看 | 欧美成人高清视频| 成人毛片一区二区三区| 成人小视频免费观看| 大地资源第二页在线观看高清版| 亚洲日本天堂| 日韩精品免费电影| 国产精品美女毛片真酒店| 国产一区欧美日韩| 亚洲欧洲日夜超级视频| 亚洲成人av观看| 日韩精品在线播放| 日韩免费不卡视频| 国产精品一二三四| 亚洲欧美一二三| 日韩黄色碟片| 丝袜美腿亚洲一区二区| 中文字幕乱码人妻二区三区| 国产三级三级三级精品8ⅰ区| 久久99久久精品国产| aa在线视频| 欧美一区二区三区在线电影 | 久久电影视频| 欧美日韩久久久久| 无遮挡aaaaa大片免费看| 亚洲精选国产| 九色91在线视频| 麻豆国产在线| 亚洲欧美综合区自拍另类| 欧美黑人一区二区| 国产亚洲成av人在线观看导航| 国产免费成人在线| 精品久久国产| 国产日韩在线观看av| 免费观看久久久久| 日韩亚洲欧美成人一区| 豆国产97在线 | 亚洲| 成人av在线电影| 亚洲熟女乱色一区二区三区| 国产精品免费大片| 国产日韩欧美中文在线播放| 在线观看h网| 精品成人免费观看| xxxx.国产| 国产精品伦理在线| 九色91porny| 99视频在线精品国自产拍免费观看| 精品久久精品久久| 78精品国产综合久久香蕉| 自拍偷拍亚洲在线| www.超碰在线.com| 欧美日韩在线免费观看| 一级黄色性视频| 久久成人免费电影| 欧美国产综合在线| 久久99精品久久久久久园产越南| 国产精品一区专区欧美日韩| 三级福利片在线观看| 日韩av网址在线观看| 中文字幕一级片| 亚洲综合丝袜美腿| 国产美女免费网站| 国产乱码字幕精品高清av| 成年人网站免费视频| 日韩av免费大片| 春色成人在线视频| 福利一区二区免费视频| 欧美黑人巨大精品一区二区| 全色精品综合影院| 欧美一级久久久久久久大片| 久久免费激情视频| 亚洲情趣在线观看| 麻豆精品免费视频| 国产成人在线免费| 九热视频在线观看| 亚洲高清在线| 一级黄色录像免费看| 亚洲调教一区| 99久久99| 欧美亚洲人成在线| 国产69久久精品成人| gogo在线高清视频| 亚洲天天在线日亚洲洲精| 亚洲精品喷潮一区二区三区| 欧美日精品一区视频| 久久夜靖品2区| 亚洲欧美日韩电影| 国内精品卡一卡二卡三| 成人av影院在线| 日韩av片免费观看| 日本成人在线视频网站| aa在线观看视频| 午夜精品电影| 少妇熟女一区二区| 日产精品一区二区| 欧美重口乱码一区二区| 久久资源综合| 国产精品久久久一区二区三区| 六九午夜精品视频| 日本午夜人人精品| 麻豆国产在线| 97国产一区二区精品久久呦| fc2ppv国产精品久久| 在线视频欧美日韩| 久久国产精品高清一区二区三区| 日韩av网址在线| 成人久久久精品国产乱码一区二区| 欧美日韩成人综合| 成人免费视频国产免费| 好吊成人免视频| 久久久久久久久影院| 亚洲6080在线| 国产精品99精品无码视| 亚洲一区精品在线| 青青操国产视频| 一区二区三区在线视频免费 | av成人综合网| 国内精品视频| 91免费电影网站| 久久一级大片| 91传媒视频在线观看| 国产成年精品| 91成人理论电影| 成人av综合网| 国产另类自拍| 色橹橹欧美在线观看视频高清| 国产伦精品一区二区| 美腿丝袜亚洲图片| 欧美精品一区三区在线观看| 外国成人在线视频| 青青草成人网| 日本欧美国产| 欧美做受777cos| 亚洲私拍自拍| 免费在线观看视频a| 国产亚洲毛片| 五月婷婷狠狠操| 蜜臀av性久久久久蜜臀av麻豆| 亚洲 国产 图片| 欧美91视频| 超碰超碰超碰超碰超碰| 国内精品亚洲| 精品中文字幕av| 日韩综合在线视频| 亚洲激情在线看| 风间由美一区二区三区在线观看| 亚洲精品乱码久久久久久蜜桃图片| 91麻豆高清视频| 青青草自拍偷拍| 亚洲女女做受ⅹxx高潮| 日产电影一区二区三区| 色综合久久久网| 一级黄色片在线观看| 日韩欧美中文字幕公布| 手机看片1024日韩| 在线观看欧美www| 中文字幕中文字幕在线中高清免费版| 午夜精品久久久久久久99热浪潮| 欧美男女交配| 91在线观看免费| 校园春色另类视频| 一区二区三区的久久的视频| 在线成人国产| 国产wwwxx| 成人av在线一区二区| 日本高清黄色片| 亚洲综合在线视频| 日韩久久久久久久久久| 日韩女优av电影| 黄色影院在线播放| 欧美日韩成人黄色| av在线播放一区| 国产免费一区| 希岛爱理av一区二区三区| 国产超级av在线| 国产精品69毛片高清亚洲| 女女互磨互喷水高潮les呻吟| 亚洲自拍偷拍图区| 在线观看av大片| 亚洲国产成人一区| 麻豆av在线免费看| 国产成人av网址| 国产精品巨作av| 偷拍盗摄高潮叫床对白清晰| 久久aⅴ乱码一区二区三区| 乱码一区二区三区| 中文字幕一区av| 无码视频一区二区三区| 精品卡一卡二卡三卡四在线| 日韩在线免费电影| 国产成人一区二区三区小说| 欧美顶级毛片在线播放| 亚洲免费视频播放| 麻豆一区二区在线| 国精产品一区二区三区| 午夜伦欧美伦电影理论片| 国产丰满美女做爰| 久久精品视频导航| 国产精品美女午夜爽爽| 久久亚洲高清| 亚洲激情自拍| 不许穿内裤随时挨c调教h苏绵| 综合色天天鬼久久鬼色| 亚洲一卡二卡在线观看| 亚洲欧美日韩综合| 涩涩在线视频| 久99久在线| 亚洲少妇一区| 亚洲综合自拍网| 亚洲福利视频导航| 黄色www视频| 国内精品模特av私拍在线观看| 日韩中文一区二区| 中国女人做爰视频| 国产一区二区影院| 四虎地址8848| 欧美乱妇20p| www.久久久久.com| 亚洲一区久久久| 亚洲欧美色图| 自拍视频第一页| 亚洲一卡二卡三卡四卡| 亚洲狼人综合网| 久久久久久这里只有精品| www.国产精品一区| 欧美视频在线观看视频| 99re免费视频精品全部| 69视频免费在线观看| 亚洲欧美日韩精品久久亚洲区| 欧美舌奴丨vk视频| 亚洲激情一区二区| 精品一区二区三区久久| 欧美成人三级视频| 精品久久一区二区三区| 国产色播av在线| 欧美成人免费在线| 蜜桃久久av一区| 91九色丨porny丨极品女神| 欧美一区二区三区影视| 国精一区二区三区| 久久艹中文字幕| 美女mm1313爽爽久久久蜜臀| 黄色精品视频在线观看| 欧美成人一级视频| 在线免费av资源| 亚洲免费视频一区| 国产馆精品极品| 国产高潮久久久| 日韩亚洲综合在线| 97久久综合精品久久久综合| 女人被男人躁得好爽免费视频| www.欧美.com| 亚洲熟女乱色一区二区三区久久久| 久久综合国产精品台湾中文娱乐网| 国产精品chinese在线观看| 国产精品-区区久久久狼| 国产精品午夜春色av| 精品黑人一区二区三区国语馆| 97色在线视频观看| 久久国产成人精品| 亚洲精品第二页| 欧美视频一区二区三区四区| 在线欧美三级| 神马欧美一区二区| 一本不卡影院| 国产99在线 | 亚洲| 日韩欧美卡一卡二| 韩国久久久久久| 黄黄视频在线观看| 久久精品欧美日韩| 性生活视频软件| 国产精品久久久久久久久影视| 亚洲人和日本人hd| 亚洲一级片网站| 亚洲国产成人av网| 麻豆tv入口在线看| 欧美极品色图| 成人综合婷婷国产精品久久蜜臀 | 欧美国产日韩在线观看成人| 亚洲免费视频网站| 亚洲精品a区| 中国黄色片一级|