随着 JavaScript 在现代网络开发中变得越来越无处不在,对于高级工程师来说,对语言及其先进技术有深刻的了解至关重要。JavaScript 是一种动态、灵活的语言,可允许从面向对象到功能编程的各种编程范例,从面向对象到功能编程。以至于,跟上最新技术和最佳实践是具有相当大的挑战。
1.缓存(memo)
缓存函数调用结果以提高性能的一种技术。通过将复杂的函数调用结果存储在缓存中,然后再次调用相同参数的函数时返回缓存结果。例如:
2.柯里化(currying)
柯里化是一种通过部分应用函数及其参数来创建新函数的技术。它通过返回一次需要一个参数的新函数来起作用,直到提供了所有参数并调用原始功能。例如:
简单创建一个有三个参数的 add 函数,并返回参数之和。柯里化函数 curry 返回一个匿名函数,缓存了参数不足的函数,并在参数满足 add 函数时,调用 add 函数并返回计算结果。
3.缓存柯里化(memoized currying)
结合缓存、柯里化技术,在函数参数有多个且函数计算复杂的场景使用。
4.函数组合(composition)
函数组合是一种将多个功能组合到单个函数中以创建更复杂行为的技术。它通过获取一个函数的输出并将其作为输入传递到另一个函数,依此类推。
5.节流 throttling、防抖 debouncing
节流和防抖是限制可以调用函数的频率,提高性能并减少不必要工作的技术。节流
可以通过在呼叫之间设置最小时间间隔来调用函数的速率;
防抖
通过延迟执行来调用函数的速率,直到自上次调用以来已经通过一定时间。
6.代理 Proxy
代理对象是 JavaScript 中的特殊对象,可让您拦截和自定义对象行为。您可以使用代理创建与普通对象不同的对象,也可以在现有对象中添加自定义行为。例如:
7.反射 Reflect
反射 API 是一组用于对对象进行元编程操作的方法,例如定义属性和调用方法。反射 API 的方法被设计为比对象类的等效方法更灵活和一致。
参考
参考链接: https://medium.com/@asimzaidi/7-javascript-tricks-for-senior-engineers-eff159f0e9b1