13個(gè)值得你收藏的JavaScript函數(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]
const factorial = (number) =>number < 0? (() => {throw new TypeError('類型錯(cuò)誤');})(): number <= 1? 1: number * factorial(number - 1);factorial(4); // 24factorial(10); // 3628800
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 =>({'&': '&','<': '<','>': '>',"'": ''','"': '"'}[tag] || tag));escapeHTML('<a href="#">tntweb</a>');
9、Unescapes 轉(zhuǎn)義 HTML 字符
const unescapeHTML = str =>str.replace(/&|<|>|'|"/g,tag =>({'&': '&','<': '<','>': '>',''': "'",'"': '"'}[tag] || tag));unescapeHTML('<a href="#">tntweb</a>');
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)
![]()

評(píng)論
圖片
表情
