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 相关文章推荐
ExtJs 表单提交登陆实现代码
Aug 19 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
读jQuery之三(构建选择器)
Jun 11 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
Feb 03 Javascript
js加强的经典分页实例
Mar 15 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
jquery手风琴特效插件
Feb 04 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 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
第一个无线电台是由谁发明的
2021/03/01 无线电
php生成随机数或者字符串的代码
2008/09/05 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
Javascript Global对象
2009/08/13 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
浅析Python中的多进程与多线程的使用
2015/04/07 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Python面向对象之Web静态服务器
2019/09/03 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
基于python中__add__函数的用法
2019/11/25 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
军训感想500字
2014/02/20 职场文书
初中班主任评语大全
2014/04/24 职场文书
读书活动总结
2014/04/28 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB