15个值得收藏的JavaScript函数
目录
- 1、逆转数字
- 2、获取数组中最大的n个数字
- 3、计算阶乘
- 4、判断当前运行环境是否为浏览器
- 5、判断当前运行环境是否为Node.js
- 6、获取url上的参数
- 7、rgb(x,x,x)颜色表达方式格式转换成对象格式
- 8、转义字符串以在 HTML 中使用
- 9、Unescapes 转义 HTML 字符
- 10、生成指定范围内的随机整数
- 11、将波浪号路径转换为绝对路径
- 12、获取不带任何参数或片段标识符的当前 URL
- 13、以字节为单位返回字符串的长度
- 14、随机获取数组中元素
- 15、检查字符串是否为有效的 JSON
1、逆转数字
const reverseNumber = n => parseFloat(`${n}`.split('').reverse().join('')) * Math.sign(n); reverseNumber(123); // 321 reverseNumber(-200); // -2 reverseNumber(32.4); // 4.23 reverseNumber(-32.4); // -4.23
2、获取数组中最大的n个数字
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、计算阶乘
const factorial = (number) => number < 0 ? (() => { throw new TypeError('类型错误'); })() : number <= 1 ? 1 : number * factorial(number - 1); factorial(4); // 24 factorial(10); // 3628800
4、判断当前运行环境是否为浏览器
const isBrowser = () => ![typeof window, typeof document].includes('undefined'); isBrowser(); // false (Node) isBrowser(); // true (browser)
5、判断当前运行环境是否为Node.js
const isNode = () => typeof process !== 'undefined' && !!process.versions && !!process.versions.node; isNode(); // true (Node) isNode(); // false (browser)
6、获取url上的参数
const getURLParams = url => (url.ma高防cdnhttp://www.558idc.com/gfcdn.htmltch(/([^?=&]+)(=([^&]*))/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)颜色表达方式格式转换成对象格式
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、转义字符串以在 HTML 中使用
const escapeHTML = str => str.replace( /[&<>'"]/g, tag => ({ '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }[tag] || tag) ); escapeHTML('<a href="#" rel="external nofollow" >tntweb</a>');
9、Unescapes 转义 HTML 字符
const unescapeHTML = str => str.replace( /&|<|>|'|"/g, tag => ({ '&': '&', '<': '<', '>': '>', ''': "'", '"': '"' }[tag] || tag) ); unescapeHTML('<a href="#">tntweb</a>');
10、生成指定范围内的随机整数
const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; randomIntegerInRange(1, 7); // 1 - 7
11、将波浪号路径转换为绝对路径
const reversePath = str => str.replace(/^~($|\/|\\)/, `${require('os').homedir()}$1`); reversePath('~/web'); // '/Users/[userName]/web'
12、获取不带任何参数或片段标识符的当前 URL
const getBaseURL = url => url.replace(/[?#].*$/, ''); getBaseURL('https://xx.com/index?name=tntweb&company=tencent'); // https://xx.com/index
13、以字节为单位返回字符串的长度
const byteSize = str => new Blob([str]).size; byteSize('🚗'); // 4 byteSize('Hello World'); // 11
14、随机获取数组中元素
const randomly = arr => arr[Math.floor(Math.random() * arr.length)]; randomly([1, 3, 5, 7, 9, 11]);
15、检查字符串是否为有效的 JSON
const isValidJSON = str => { try { JSON.parse(str); return true; } catch (e) { return false; } }; isValidJSON('{"name":"tntweb","age":20}'); // true isValidJSON('{"name":"tntweb",age:"20"}'); // false isValidJSON(null); // true
到此这篇关于15个值得收藏的JavaScript函数的文章就介绍到这了,更多相关JavaScript函数内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!