码农知识堂 - 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);

    未完待续。。。

  • 相关阅读:
    JAVA G1垃圾收集器介绍
    VSCode连接远程服务器及docker
    使用SpringBoot集成Mybatis的详细步骤
    .docx,.doc,.pptx,.ppt,.xlsx,.pdf后缀文档图标不显示
    three.js学习之vR展厅
    全新系统平台开发搭建(礼品试客系统+佣金模式双通道部署)
    【笔试强训】day10
    JavaScript
    SpringCloud-微服务-Gateway网关配置
    微电影行业现状分析
  • 原文地址:https://blog.csdn.net/lq099526/article/details/126153383
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号