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 相关文章推荐
Mozilla 表达式 __noSuchMethod__
Apr 05 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
Jan 23 Javascript
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
jquery移除、绑定、触发元素事件使用示例详解
Apr 10 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
Dec 24 Javascript
推荐几个不错的console调试技巧实现
Dec 20 Javascript
详解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 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
php写的AES加密解密类分享
2014/06/20 PHP
destoon数据库表说明汇总
2014/07/15 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
JS功能代码集锦
2016/05/04 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
查询优化的一般准则有哪些
2015/03/08 面试题
公司薪酬管理制度
2014/01/31 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
九年级数学教学反思
2014/02/02 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
详解TypeScript的基础类型
2022/02/18 Javascript
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android