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 相关文章推荐
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
Javascript的表单验证-揭开正则表达式的面纱
Mar 18 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
vue中用H5实现文件上传的方法实例代码
May 27 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
Vue页面跳转传递参数及接收方式
Sep 09 Javascript
Vue中computed和watch有哪些区别
Dec 19 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中常用的预定义变量小结
2012/05/09 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
javascript运动详解
2015/07/06 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
2018/01/18 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
python MySQLdb使用教程详解
2018/03/20 Python
python实现图片文件批量重命名
2020/03/23 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
django 扩展user用户字段inlines方式
2020/03/30 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
什么是Python中的匿名函数
2020/06/02 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
大一军训感言
2014/01/09 职场文书
小学美术教学反思
2014/02/01 职场文书
2014年女职工工作总结
2014/11/27 职场文书
2015年为民办实事工作总结
2015/05/26 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
英镑符号 £
2022/02/17 杂记
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技