欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

15个值得收藏的JavaScript函数

程序员文章站 2022-06-17 22:51:53
目录5、判断当前运行环境是否为node.js8、转义字符串以在 html 中使用9、unescapes 转义 html 字符12、获取不带任何参数或片段标识符的当前 url15、检查字符串是否为有效的...

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.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)颜色表达方式格式转换成对象格式

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 =>
      ({
        '&': '&amp;',
        '<': '&lt;',
        '>': '&gt;',
        "'": '&#39;',
        '"': '&quot;'
      }[tag] || tag)
  );

escapehtml('<a href="#" rel="external nofollow" >tntweb</a>'); 


9、unescapes 转义 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、生成指定范围内的随机整数

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函数内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: JavaScript 函数