15个值得收藏的JavaScript函数


Posted in Javascript onSeptember 15, 2021

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 相关文章推荐
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
JavaScript实现动态添加,删除行的方法实例详解
Jul 02 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
bootstrap基础知识学习笔记
Nov 02 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 09 Javascript
JS实现简单贪吃蛇小游戏
Oct 28 Javascript
Js利用正则表达式去除字符串的中括号
Nov 23 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
详解JavaScript中Arguments对象用途
详细谈谈JavaScript中循环之间的差异
Aug 23 #Javascript
javascript代码简写的几种常用方式汇总
Aug 23 #Javascript
vue使用Google Recaptcha验证的实现示例
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 #Vue.js
关于React Native使用axios进行网络请求的方法
Aug 02 #Javascript
vscode中使用npm安装babel的方法
You might like
一步一步学习PHP(8) php 数组
2010/03/05 PHP
WordPress中使主题支持小工具以及添加插件启用函数
2015/12/22 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
JavaScript中string对象
2015/06/12 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
创立科技Java面试题
2015/11/29 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
生产内勤岗位职责
2013/12/07 职场文书
活动总结模板
2014/05/09 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
人事局接收函
2015/01/30 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
初一语文教学反思
2016/03/03 职场文书