码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 常用JavaScript单行代码总结


    Less is more

    目录

    1、切换布尔值

    2、范围内的随机数

    3、正数

    4、奇数还是偶数

    5、求平均值

    6、四舍五入到小数点

    7、字符串大写

    8、随机字符串

    9、字符串反转

    10、是否为数组

    11、数组元素随机排序

    12、获取数组唯一值

    13、检查数组中的所有项是否满足某个条件

    14、将所有值转换为数组

    15、获取数组的交集

    16、数组是否为空

    17、从 URL 获取search参数对象

    18、打印预览

    19、将文本复制到剪贴板

    20、计算两个日期之间的天数

    21、日期是否工作日

    22、日期是否合法

    23、查找日期位于一年中的第几天

    24、获取某个月的天数

    25、交换变量值

    26、一个空格替换多个空格

    27、对象是否相等

    28、对象是否为空

    29、Cookie

    30、颜色RGB转十六进制

    31、随机十六进制颜色

    32、回到顶部

    33、获取用户选择的文本

    34、检查当前设备是否处于暗模式

    35、检查元素当前是否处于焦点

    36、检查当前是否支持触摸事件

    37、检查当前是否Apple设备


    1、切换布尔值

    const toggle = (value) => value = !value

    2、范围内的随机数

    const randomNumberInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

    3、正数

    const getPositiveNumber = (number) => Math.max(number, 0)

    4、奇数还是偶数

    1. const isEven = num => num % 2 === 0;
    2. console.log(isEven(2)); // True

    5、求平均值

    1. const average = (...args) => args.reduce((a, b) => a + b) / args.length;
    2. average(1, 2, 3, 4); // 2.5

    6、四舍五入到小数点

    1. const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
    2. toFixed(25.198726354, 6); // 25.198726

    7、字符串大写

    const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1)

    8、随机字符串

    1. const randomString = () => Math.random().toString(36).slice(2);
    2. randomString();

    9、字符串反转

    1. const reverse = str => str.split('').reverse().join('');
    2. reverse('hello world'); // 'dlrow olleh'

    10、是否为数组

    const isArray = (arr) => Array.isArray(arr)

    11、数组元素随机排序

    const sortRandom = (arr) => arr.sort(() => Math.random() - 0.5)

    12、获取数组唯一值

    const uniqueValues = (arr) => [...new Set(arr)]

    13、检查数组中的所有项是否满足某个条件

    1. const isOldEnough = (age) => age >= 18
    2. const olderPeople = [39, 51, 33, 65, 49]
    3. olderPeople.every(isOldEnough) // true
    4. // every 方法检查数组中的所有项是否满足某个条件
    5. // some() 方法检查数组中的一个元素来满足某个条件

    14、将所有值转换为数组

    1. const arrayToNumbers = (arr) => arr.map(Number)
    2. const numbers = arrayToNumbers(['0', '1', '2', '3'])
    3. const arrayToBooleans = (arr) => arr.map(Boolean)
    4. const booleans = arrayToBooleans(numbers)

    15、获取数组的交集

    1. const intersection = (a, ...arr) => [...new Set(a)].filter((v) => arr.every((b) => b.includes(v)))
    2. intersection([1, 2, 3], [2, 3, 4, 7, 8], [1, 3, 9]) // [3]

    16、数组是否为空

    1. const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;
    2. isNotEmpty([1, 2, 3]); // true

    17、从 URL 获取search参数对象

    Object.fromEntries(new URLSearchParams(window.location.search)) 

    18、打印预览

    const showPrintDialog = () => window.print()

    19、将文本复制到剪贴板

    1. const copyTextToClipboard = async (text) => {
    2. await navigator.clipboard.writeText(text)
    3. }

    20、计算两个日期之间的天数

    1. const daysBetweenDates = (dateA, dateB) => {
    2. const timeDifference = Math.abs(dateA.getTime() - dateB.getTime())
    3. return Math.floor(timeDifference / (3600 * 24 * 1000))
    4. }
    5. daysBetweenDates(new Date('2020/10/21'), new Date('2021/10/29')) // 373

    21、日期是否工作日

    1. const isWeekday = (date) => date.getDay() % 6 !== 0;
    2. console.log(isWeekday(new Date(2021, 0, 10))); // false (Sunday)

    22、日期是否合法

    1. const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());
    2. isDateValid("December 17, 1995 03:24:00"); // true

    23、查找日期位于一年中的第几天

    1. const dayOfYear = (date) => Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
    2. dayOfYear(new Date()); // 272

    24、获取某个月的天数

    1. const daysInMonth = (month, year) => new Date(year, month, 0).getDate()
    2. daysInMonth(2, 2024) // 29

    25、交换变量值

    1. let personA = "Laura"
    2. let personB = "John"
    3. [personA, personB] = [personB, personA]

    26、一个空格替换多个空格

    1. const replaceSpaces = (str) => str.replace(/\s\s+/g, ' ')
    2. replaceSpaces('Too many spaces') // 'Too many spaces'

    27、对象是否相等

    1. const isEqual = (...objects) => objects.every(obj => JSON.stringify(obj) === JSON.stringify(objects[0]))
    2. isEqual({ name: 'Frank', age: 32 }, { name: 'Frank', age: 32 }, { name: 'Frank', age: 32 }) // true

    28、对象是否为空

    const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;

    29、Cookie

    1. // 获取浏览器Cookie的值
    2. const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();
    3. cookie('xx');
    4. // 清除全部Cookie
    5. const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`));

    30、颜色RGB转十六进制

    1. const rgbToHex = (r, g, b) => "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
    2. rgbToHex(0, 51, 255); // #0033ff

    31、随机十六进制颜色

    1. const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`;
    2. console.log(randomHex());

    32、回到顶部

    1. const goToTop = () => window.scrollTo(0, 0);
    2. goToTop();

    33、获取用户选择的文本

    1. const getSelectedText = () => window.getSelection().toString();
    2. getSelectedText();

    34、检查当前设备是否处于暗模式

    const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches    

    35、检查元素当前是否处于焦点

    const elementIsInFocus = (el) => (el === document.activeElement);

    36、检查当前是否支持触摸事件

    1. const touchSupported = () => {
    2. ('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch);
    3. }

    37、检查当前是否Apple设备

    const isAppleDevice = /Mac|iPod|iPhone|iPad/.test(navigator.platform);

    未完待续。。。

  • 相关阅读:
    Mybatis自定义类型映射处理器
    树状数组——数组两种初始化方式+单点增加+查询前缀和+插入
    React学习(六)— 状态管理Redux
    戏说数据仓库,商业智能BI中数据仓库的本质是什么?
    Abnova 鸡抗小鼠 IgG (H&L) 二抗(过氧化物酶)说明书
    [R] Underline your idea with ggplot2
    web前端-javascript-运算符(介绍说明,算术运算符、+、-、*、/、%,隐式类型转换、转换为String、转换为Number)
    flutter系列之:flutter架构什么的,看完这篇文章就全懂了
    第四章——DQL查询数据(最重点)
    广告岗位怎么使用数字员工省时省力
  • 原文地址:https://blog.csdn.net/lq099526/article/details/126153383
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号