学习这些很棒的 Javascript 概念。
介绍
您一定看到过人们辱骂和憎恨 JS,因为他们将 Javascript 与其他语言(如 Java、C++、Go)进行比较,但 Javascript 完全不同。
在这篇文章中我将展示 JavaScript 中的一些很酷的东西。
生成器函数⚡
这是一种可以暂停和恢复执行的函数。
简单来说,假设你调用这个函数,并希望在某个状态/条件下暂停它的执行,然后在某个条件满足后再次恢复它的执行,那么你可以使用生成器函数来实现。
在上面的例子中,您可以看到在编写函数后使用星号(*)创建生成器函数,当您想要暂停其执行时使用yield并停止使用return,您甚至可以使用 yield 返回值。
如果要恢复执行,请执行生成器对象的.run()方法。
用法
- 迭代器
- 高效生成无限数
Async Await 与 Generator 函数 ⏳
-
生成器函数和异步函数可用于编写可等待的异步代码。
-
生成器函数总是产生一个像 {value: any, done: bool} 这样的对象,但异步函数返回一个要解决的承诺,或者如果没有解决则会抛出一个错误。
-
生成器函数运行直到 yield 并暂停,但异步函数运行直到 await 并在那里等待。
结束🤏
闭包是一种环境,在函数内部创建,它存储一些变量,并可由该范围内的另一个函数使用。
在上面的例子中,您可以看到parentName如何与child函数绑定。
用法
- 隐藏函数内部的数据。
- 維持状态。
柯里化🍛
假设你有一个带有 N 个参数的函数,将其转换为仅带有 1 个参数的 N 个函数调用,这在 Javascript 中称为 Currying。
著名问题:创建一个柯里化函数来给出 N 个数字的总和,例如 function(1)(2)(3).....(N) = 1+2+3+...+N
用法
- 用于创建高阶函数
- 记忆化
- 错误处理
- 初始化函数
高阶函数(HOF)💪
HOF 接受函数作为参数和/或返回带有闭包的函数。
例如数组方法,如 map、reduce、filter ......等。
用法
- 将函数与状态绑定
致电、申请并绑定📞
Call、Apply 和 Bind 是用于将对象与this绑定的 JS 方法。
在上面的例子中,我展示了如何使用 call、apply 和 bind。
用法
- DRY:不要重复代码
- 去抖动
通过Linkedin、Github、Twitter、Youtube联系我😇
感谢Akshay Saini关于 JS 的精彩系列文章。
文章来源:https://dev.to/abhishekraj272/if-you-don-t-know-this-you-don-t-know-javascript-2355