JavaScript 奇怪又实用的姿势又增加了六个
今天给大家带来一些JavaScript的冷知识,可能你有所耳闻,但也有可能会让你大吃一惊。废话不多说,一起来看看吧!
React.memo()、useCallback()、useMemo() 区别及基本使用
React.memo是一个高阶组件(参数为组件,返回值为新组件的函数即为高阶组件),对外部而言,React.memo会检查props的变更,仅当传入的props发生变化时组件才会重新渲染
终于在 JS 中用上 WeakMap 了!
当我在处理一个滑动组件时,遇到了一个问题,当我快速切换元素的打开和关闭状态时,如果不允许上一个动画完成,新动画最终会失控,阻断后面的动画效果。
Vue Router 记住页面滚动位置的简单实现
本质就是, 利用内置组件在页面组件得以被缓存的基础上, 再加以document.documentElement.scrollTop获取滚动距离, 后返回页面时恢复滚动距离实现效果
面试官:能用JS写一个发布订阅模式吗?
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
如何实现动态加载Javascript 文件模块
前端开发中仅在需要时的时候加载 Javascript 模块。这样可以提供很大的性能,比如:您有一个组件,例如复杂的视频播放器,它可以使用大量 js,并且该视频仅在用户单击它时才会启动。那么在这种情况下,用户甚至可能永远不会单击播放按钮,因此仅在需要时才加载该Js模块。
Js中的稀疏数组与密集数组
一般而言,js中的数组是稀疏的,也就是说数组中的元素之间可以有空隙,因为一个数组其实就是一个键值映射。这篇本文解释了如何创建稀疏数组和不稀疏的数组,以及稀疏数组和密集数组之间的区别
js如何简短优雅地实现sleep函数?
sleep函数作用是让线程休眠,等到指定时间在重新唤起。那么在js中如何优雅的来实现呢?
面试官:用“尾递归”优化斐波那契函数
就是这么简单的一道题,包含着相当多的JS知识点,尤其是它的优化过程可以看出你的基本功扎不扎实,所以有些面试官喜欢问这道题。下面我们来看递归和递推这两种实现以及它们各自的优化过程