数组扁平化 12345678910111213141516171819202122function flat(arr) { // 1.flat方法 // return arr.flat(Infinity) // 2.toString()再split() // return arr.toString().split(',') // 3.reduce // return 2020-09-21
函数柯里化 1234567891011121314151617181920function curry(fn) { return function curried(...args) { if (args.length >= fn.length) { return fn.apply(this, args); } else { 2020-09-21
手动实现深克隆 1234567891011121314151617181920function deepClone(obj, map = new WeakMap()) { if (!obj instanceof Object) return obj; if (map.has(obj)) return map.get(obj); if (obj instanceof Date) return new 2020-09-21
原生手动实现懒加载 重点是如何判断是否在视窗内 12345const viewPortHeight = window.innerHeight;const offsetTop = el.offsetTop;const scrollTop = document.documentElement.scrollTop;const top = offsetTop - scrollTop;return top <= view 2020-09-21
不断旋转的三角形 1234567891011121314151617181920212223242526272829303132<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport&q 2020-09-21
head、footer、三栏中间自适应,两边固定长度布局实现 123456789101112131415161718192021222324252627282930313233<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport 2020-09-21
常见面试智力题 赛马次数 有 25 匹马和 5 条赛道,赛马过程无法进行计时,只能知道相对快慢。问最少需要几场赛马可以知道前 3 名。先把 25 匹马分成 5 组,进行 5 场赛马,得到每组的排名。再将每组的第 1 名选出,进行 1 场赛马,按照这场的排名将 5 组先后标为 A、B、C、D、E。可以知道,A 组的第 1 名就是所有 25 匹马的第 1 名。而第 2、3 名只可能在 A 组的 2、3 名,B 组的 2020-09-20
介绍一下SVG 本文转自:https://juejin.im/post/6844904017273815048 SVG 简介SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种 XML 应用,可以以一种简洁、可移植的形式表示图形信息。目前,人们对 SVG 越来越感兴趣。大多数现代浏览器都能显示 SVG 图形,并且大多数矢量绘图软件都能导出 SVG 图形。SVG 主要可以概括为以下几 2020-09-20
一个超有趣的变色龙智力题 本文转自:https://blog.csdn.net/littletigerat/article/details/7583222 试题某岛有三种变色龙,分别为红色,黄色,蓝色,三色分别有13条,15条,17条。当有两只变色龙相遇时,如果颜色不同,他们就变成第三种颜色。如红和黄相遇,都变成蓝色。问:是否可能所有的变色龙都变成同种颜色? 分析与思路您先别着急看答案,先试着做一做。您的答案是什么?为什么 2020-09-20
JavaScript严格模式和非严格模式有什么区别? 本文转自:https://juejin.im/post/6844903566121893895 JavaScript 中的 严格模式严格模式:使用严格模式的好处是可以提早知道代码中存在的错误,及时捕获一些可能导致编程错误的 ECMAScript 行为。 严格模式的选择使用严格模式的编译指示(pragma): "use strict";,支持严格模式的引擎会启动这种模式,而不支持 2020-09-20