《JavaScript》20个非常实用的JavaScript一行代码,持续更新中

// 获取变量的类型

const getType = (value) => Object.prototype.toString.call(value);

// Result: ‘[object Function]’

getType(()=>{});

Date 对象中获取时间


const timeDate = date => date.toTimeString().slice(0, 8);

// Result: “09:38:11”

console.log(timeDate(new Date(0, 0, 0, 09, 38, 11)))

// Result: 返回当前时间

console.log(timeFromDate(new Date()));

判断当前日期是一年中的第几天


判断当前的日期属于一年中的第几天

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

// Result: 355

dayOfYear(new Date());

计算两个日期之间的间隔时间


计算两个日期的间隔时间,比如2021-10-31和2021-12-15间隔了多少天

const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)

// Result: 410

console.log(dayDif(new Date(“2021-10-31”), new Date(“2022-12-15”)))

检查元素是否处于聚焦状态


使用 document.activeElement 来检查元素是否处于聚焦状态

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

// Result: 参数为DOM元素,如果还元素处于焦点状态会返回 True 否则返回 False

elementIsInFocus(Element)

滚动至页面顶部


使用window.scrollTo() 会滚动至指定的坐标,如果设置坐标为(0,0),就会回到页面顶部

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

// Result: 将会滚动至顶部

goToTop();

检查当前用户是否是苹果设备


使用 navigator.platform 判断当前用户是否是苹果设备

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

// Result: 是苹果设备会返回 True

console.log(isAppleDevice);

复制到粘贴板


使用navigator.clipboard.writeText复制到剪贴板

const copyToClipboard = (text) => navigator.clipboard.writeText(text);

copyToClipboard(“Hello Oliver”);

判断当前标签页是否为可视状态


通过下方代码可以判断当前的页签是否处于激活状态,有时候我们在页签失焦的时候需要停止某些操作

const isBrowserTabInView = () => document.hidden;

// Result: true/false

isBrowserTabInView();

获取选中的文本


该方法通过内置的getSelection()属性获取用户选择的文本

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

getSelectedText();

检测是否是黑暗模式


使用以下代码检查用户的设备是否处于暗模式

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

console.log(isDarkMode)

反转字符串


其实反转字符串有很多种方法,这里是我之前看到一位大佬的写法,使用了 split(),reverse() 和 join()后仅一行代码就实现了:

// 反转字符串

const reverse = str => str.split(‘’).reverse().join(‘’);

// Result: ‘revilo olleh’

reverse(‘hello oliver’);

首字母大写


将英文单字首字母大写后并返回

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

// Result: ‘Hello Oliver’

capitalize(“hello Oliver”)

将RGB颜色转化为十六进制


将RGB颜色转成十六进制的颜色,比如:rgb(255,255,255)将会变成#ffffff

const rgbToHex = (r, g, b) => “#” + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);

// Result: ‘#ffffff’

rgbToHex(255, 255, 255);

随机十六进制颜色


随机生成16进制的颜色

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

// Result: 随机十六进制颜色,比如:#b6c349

randomHex();

数字的奇偶数判断


通过%号直接判断数字是奇数还是偶数

const isEven = num => num % 2 === 0;

// Result: true

console.log(isEven(2));

// Result: false

console.log(isEven(3));

两个整数之间的随机整数


在两个整数之间生成一个随机整数

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

// Result: 1-50之间的随机整数

random(1, 50);

数组去重


数组去重的方法有很多,这里直接采用了ES6中的方法

const removeDuplicates = (arr) => […new Set(arr)];

// Result: [1, 2, 3, 4, 5, 6]

console.log(removeDuplicates([1, 2, 2, 3, 3, 4, 4, 5, 5, 6]));

判断数组是否为空


该方法用来判断一个数组是否为空,返回值是一个布尔型

const isEmpty = arr => Array.isArray(arr) && arr.length === 0;

// Result: false

isEmpty([1, 2, 3]);

小结

============================================================

都是平时看CSDN等一些大神们的文章时,看到的一些神奇的代码收藏下来的,如果有小伙伴还有别的看到的一些代码,麻烦告知博主,我及时更新,谢谢
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后的最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体获取

大厂面试题

面试题目录

存中…(img-bboMrXkb-1712552556623)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后的最后

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体获取

[外链图片转存中…(img-5VZniQ5f-1712552556623)]

[外链图片转存中…(img-Lx3l09gg-1712552556623)]

[外链图片转存中…(img-ymGKxhEY-1712552556624)]

[外链图片转存中…(img-QTfyNgB3-1712552556624)]

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值