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 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
(function(){})()的用法与优点
Mar 11 Javascript
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
面向对象的javascript(笔记)
Oct 06 Javascript
js 取时间差去掉周六周日实现代码
Dec 25 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
Dec 24 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资源管理框架Assetic简介
2014/06/12 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
Python获取时间戳代码实例
2019/09/24 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
大学生工作推荐信范文
2013/12/02 职场文书
优秀村官事迹材料
2014/01/10 职场文书
高中生期末评语大全
2014/01/28 职场文书
带薪年假请假条
2014/02/04 职场文书
趣味运动会活动方案
2014/02/12 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
财务科科长岗位职责
2014/03/10 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
优秀大学生自荐信
2014/06/09 职场文书
优秀团员事迹材料
2014/12/25 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书