<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          13個(gè)值得你收藏的JavaScript函數(shù)

          共 3025字,需瀏覽 7分鐘

           ·

          2021-09-14 11:25

          在開發(fā)一個(gè)JavaScript項(xiàng)目時(shí),經(jīng)常會(huì)用到以前開發(fā)過的一些工具函數(shù),收集這些函數(shù),當(dāng)你需要它們的時(shí)候,將節(jié)省你大量的開發(fā)時(shí)間。
          今天,本文將給大家分享常用的工具函數(shù),你可以使用它們,并以優(yōu)雅的方式解決這些問題。
          1、逆轉(zhuǎn)數(shù)字
          const reverseNumber = n =>  parseFloat(`${n}`.split('').reverse().join('')) * Math.sign(n);
          reverseNumber(123); // 321reverseNumber(-200); // -2reverseNumber(32.4); // 4.23reverseNumber(-32.4); // -4.23

          2、獲取數(shù)組中最大的n個(gè)數(shù)字

          const maxFromArray = (array, number = 1) => [...array]  .sort((x, y) => y -x).slice(0, number);
          maxFromArray([2, 1, 4, 3, 5, 6]); // [6]maxFromArray([2, 1, 4, 3, 6, 6], 2); // [6, 6]
          3、計(jì)算階乘
          const factorial = (number) =>  number < 0    ? (() => {      throw new TypeError('類型錯(cuò)誤');    })()    : number <= 1    ? 1    : number * factorial(number - 1);
          factorial(4); // 24factorial(10); // 3628800
          4、判斷當(dāng)前運(yùn)行環(huán)境是否為瀏覽器
          const isBrowser = () => ![typeof window, typeof document].includes('undefined');
          isBrowser(); // false (Node)isBrowser(); // true (browser)

          5、判斷當(dāng)前運(yùn)行環(huán)境是否為Node.js

          const isNode = () =>  typeof process !== 'undefined' &&  !!process.versions &&  !!process.versions.node;
          isNode(); // true (Node)isNode(); // false (browser)

          6、獲取url上的參數(shù)

          const getURLParams = url =>  (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(    (a, v) => (      (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a    ),    {}  );
          getURLParams('qq.com'); // {}getURLParams('https://xx.com?name=tntweb&age=20');// {name: 'tntweb', age: '20'}

          7、rgb(x,x,x)顏色表達(dá)方式格式轉(zhuǎn)換成對(duì)象格式

          const toRGBObject = rgbStr => {  const [red, green, blue] = rgbStr.match(/\d+/g).map(Number);  return { red, green, blue };};
          toRGBObject('rgb(100, 150, 200)'); // {red: 100, green: 150, blue: 200}

          8、轉(zhuǎn)義字符串以在 html 中使用

          const escapehtml = str =>  str.replace(    /[&<>'"]/g,    tag =>      ({        '&': '&amp;',        '<': '&lt;',        '>': '&gt;',        "'": '&#39;',        '"': '&quot;'      }[tag] || tag)  );
          escapeHTML('<a href="#">tntweb</a>');

          9、Unescapes 轉(zhuǎn)義 HTML 字符

          const unescapeHTML = str =>  str.replace(    /&amp;|&lt;|&gt;|&#39;|&quot;/g,    tag =>      ({        '&amp;': '&',        '&lt;': '<',        '&gt;': '>',        '&#39;': "'",        '&quot;': '"'      }[tag] || tag)  );
          unescapeHTML('&lt;a href=&quot;#&quot;&gt;tntweb&lt;/a&gt;');

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

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

          11、將波浪號(hào)路徑轉(zhuǎn)換為絕對(duì)路徑

          const reversePath = str =>  str.replace(/^~($|\/|\\)/, `${require('os').homedir()}$1`);
          reversePath('~/web'); // '/Users/[userName]/web'

          12、獲取不帶任何參數(shù)或片段標(biāo)識(shí)符的當(dāng)前 URL

          const getBaseURL = url => url.replace(/[?#].*$/, '');
          getBaseURL('https://xx.com/index?name=tntweb&company=tencent');// https://xx.com/index

          13、以字節(jié)為單位返回字符串的長度。

          const byteSize = str => new Blob([str]).size;
          byteSize('


          學(xué)習(xí)更多技能

          請(qǐng)點(diǎn)擊下方公眾號(hào)


          瀏覽 46
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码三级视频 | 影音先锋黄色资源 | 逼逼在线 | 九九亚洲视频 | 亚洲国产午夜在线电影网站 |