// 判断是否是null
const isFunction = (value)=> Object.prototype.toString.call(value) === “[object Function]”;
// 判断是否是NaN
const isArray = (value)=> Object.prototype.toString.call(value) === “[object Array]”;
有类型判断,自然就有对应的类型获取,获取当前变量的类型
// 获取变量的类型
const getType = (value) => Object.prototype.toString.call(value);
// Result: ‘[object Function]’
getType(()=>{});
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(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之间的随机整数
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。
CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
前端开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-BsvygOx8-1712015390432)]
最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。