iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >15个值得收藏的JavaScript函数
  • 337
分享到

15个值得收藏的JavaScript函数

2024-04-02 19:04:59 337人浏览 泡泡鱼
摘要

目录1、逆转数字2、获取数组中最大的n个数字3、计算阶乘4、判断当前运行环境是否为浏览器5、判断当前运行环境是否为node.js6、获取url上的参数7、rgb(x,x,x)颜色表达

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函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 15个值得收藏的JavaScript函数

本文链接: https://www.lsjlt.com/news/135668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 15个值得收藏的JavaScript函数
    目录1、逆转数字2、获取数组中最大的n个数字3、计算阶乘4、判断当前运行环境是否为浏览器5、判断当前运行环境是否为Node.js6、获取url上的参数7、rgb(x,x,x)颜色表达...
    99+
    2024-04-02
  • 4个值得收藏的Javascript技巧
    目录前言1.变量转字符串2.普通对象3.once4.浏览器嗅探在Chrome中执行在Node中执行在Chrome中执行前言 学习一门语言的一种非常有效的方法就是阅读该编程语言开发的优...
    99+
    2024-04-02
  • 分享6个值得收藏的Python代码
    目录1、类有两个方法,一个是 new,一个是 init,有什么区别,哪个会先执行呢?2、map 函数返回的对象3、正则表达式中 compile 是否多此一举?4、[[1,2],[3,...
    99+
    2024-04-02
  • Vue.js性能优化N个技巧(值得收藏)
    目录Functional componentsChild component splittingLocal variablesReuse DOM with v-showKeepAli...
    99+
    2024-04-02
  • 25个值得收藏的Python文本处理案例
    目录1提取PDF内容2提取Word内容3提取Web网页内容4读取Json数据5读取CSV数据6删除字符串中的标点符号7使用NLTK删除停用词8使用TextBlob更正拼写9使用NLT...
    99+
    2024-04-02
  • 完整的 MySQL 规范,值得收藏
    一、前言 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational...
    99+
    2023-10-20
    mysql 数据库
  • 值得收藏的CSS技巧有哪些
    这篇文章主要讲解了“值得收藏的CSS技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“值得收藏的CSS技巧有哪些”吧!1. 使用 Shape-outs...
    99+
    2024-04-02
  • ES2019中值得收藏的功能有哪些
    这篇文章主要介绍了ES2019中值得收藏的功能有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES2019 规范是对 JavaScript的小规模扩展,但仍带来了一些有趣...
    99+
    2023-06-14
  • 超详细汇总21个值得收藏的mysql优化实践
    目录1.为查询缓存优化你的查询2. EXPLAIN 你的 SELECT 查询3. 当只要一行数据时使用 LIMIT 1 14. 为搜索字段建索引5. 在 Join 表的时候使...
    99+
    2024-04-02
  • 值得收藏的HTML5资源分别是怎样的
    值得收藏的HTML5资源分别是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。本文收集了 15 个非常值得收藏的 HTML5 资源,这些资...
    99+
    2024-04-02
  • 值得收藏的30道Python练手题(附详解)
    1. 已知一个字符串为 “hello_world_yoyo”,如何得到一个队列 [“hello”,”world”,”yoyo”] ?使用 split 函数,分割字符串,并且将数据转换成列表类型:test = 'hello_world_yoy...
    99+
    2023-05-14
    Python 练手题
  • 值得收藏的CSS可视化工具有哪些
    这篇文章主要讲解了“值得收藏的CSS可视化工具有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“值得收藏的CSS可视化工具有哪些”吧!1. Neumorp...
    99+
    2024-04-02
  • 值得收藏的2017年Java开发岗位面试题
    下面是我自己收集整理的2017年Java岗位的面试题,可以用它来好好准备面试。一、Java基础 String类为什么是final的。 HashMap的源码,实现原理,底层结构。 说说你知道的几个Java集合类:list、set、queue、...
    99+
    2023-05-31
    java 面试题 ava
  • Mybatis一对多查询的两种姿势(值得收藏)
    前言 最近碰到了Mybatis一对多查询的场景,在这里总结对比下常见的两种实现方式。 本文以常见的订单表和订单详情表来举例说明; 数据库表准备 订单表 tbl_order 订单...
    99+
    2024-04-02
  • 值得收藏的9个提高代码运行效率的小技巧(推荐)
    目录1. 减小程序计算量 1.1 示例代码1.2 分析代码1.3 改进代码2. 提取代码中的公共部分2.1 示例代码2.2 分析代码2.3 改进代码3. 消除循环中低效代码...
    99+
    2024-04-02
  • 值得收藏的30道Python基础练手题(附详解)
    今天给大家分享30道Python练习题,建议大家先独立思考一下解题思路,再查看答案。 1. 已知一个字符串为 “hello_world_JMzz”,如何得到一个队列  [“hello”,”world”,”JMzz”] ? 使用 split ...
    99+
    2023-09-10
    python 开发语言
  • 值得收藏!9个最佳SSD状态监控及性能优化工具
      如我们所知,与传统硬盘驱动器(HDD)相比,固态硬盘具有极高的磁盘性能,尤其是新出厂的硬盘。但随着时间的推移,SSD的性能会急剧下降。而且当存储在其上的数据达到总容量的约70%时,尤其如此。  SSD测试工具在监控固态硬盘的运行状况和性...
    99+
    2023-06-04
  • java 批量插入千万条数据优化方案【值得收藏】
    场景介绍 再实际开发应用中总会面临导入大批量数据插入数据库、数据迁移、同步等操作在java 后台执行,执行效率的优化问题随之而来!比如如何快速往MySQL数据库中导入1000万数据 mybatis MySQL中新...
    99+
    2023-08-17
    java mybatis mysql
  • 整理了12个必备的Python函数,建议收藏
    前言新手在做写代码的时候容易卡壳,尤其当接触的函数以及其他知识比较多的时候,经常会看完需求之后不知道自己该用什么方法来实现它,实现的逻辑可能你有,但怎么该用什么函数给忘了,这其实就是知识的储备不够,你记不住哪个函数有什么作用,自然一头雾水。...
    99+
    2023-05-14
    代码 Python 函数
  • 分享6个珍藏已久的电影网站,记得悄悄收藏哦
    在当今这个鱼龙混杂的时代,想要找到一些高质量的电影网站可谓是非常不容易,今天小编就从上百个网站,精挑细选了几个电影网站,全部都非常高质量的网站,大大增强了我们的观影体验,下面我们就来一起看看吧。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作