前端开发必须经常处理用户输入的数据,其中之一就是密码。一些密码规则是要求用户输入两个相同的密码。例如,在注册时,要求用户输入新密码两次,以保证用户没有输入错误或打错字。
那么在前端中如何检查两个密码是否匹配呢?在 ECMAScript 2018 (ES9) 中提供了一种新的解决方案: 异步迭代生成器.
什么是迭代生成器?
在学习 ECMAScript 2018 (ES9) 之前,让我们先了解一下迭代生成器。 迭代生成器是 ECMAScript 6 (ES6) 中引入的一种新类型。
它是一种可以从生成器中一遍又一遍地获取值的函数。 生成器的函数体中包含yield
语句。每次调用迭代器对象的 next
方法,都会返回一个包含当前值及一个布尔值的对象。
下面是一个简单的迭代生成器示例,它返回一个斐波那契数列:
-- -------------------- ---- ------- --------- ----------- - --- - - -- - - -- ----- ------ - ----- -- --- -- - --- - - --- - - ----- --- - ------------ ------------------------------ -- - ------------------------------ -- - ------------------------------ -- - ------------------------------ -- - ------------------------------ -- -
在此例中,当我们调用 fibonacci()
函数时,它会返回一个迭代器对象,我们可以使用 next()
方法从迭代器中获取斐波那契数列。
异步迭代生成器
在 ECMAScript 2018 (ES9) 中,我们可以使用异步迭代生成器来处理生成器中的异步操作。异步迭代生成器与普通迭代生成器非常相似,区别在于它的函数体中可以包含异步操作。
下面是一个简单的异步迭代生成器示例,它用于读取远程资源:
-- -------------------- ---- ------- ----- --------- ---------------- - ----- -------- - ----- ----------- ----- ------ - ----- ---- - ----- ---------------- -- ------ - ----- ----- - ---- - ------ - - -
在此示例中,当我们调用 fetchRemote()
函数时,它会返回一个异步迭代器对象,我们可以使用 next()
方法从迭代器中获取响应文本。
应用
现在我们可以将异步迭代生成器应用于检查两个密码是否匹配:
-- -------------------- ---- ------- ----- --------- -------------------- --- - -- --- -- --- - ----- ----- - ---- - ----- ------ - - ----- -------- ----------------------- --- - --- ----- ------ ----- -- -------------------- ---- - -- -------- - ---------------------- -- --- -------- - ---- - ---------------------- -------- - - - ---------------------------------- --------------- -- --------- ----- ---------------------------------- ------------ -- --------- -- --- -----
在此示例中,我们定义了一个名为 comparePasswords()
的异步迭代生成器,它接受两个密码作为参数,如果两个密码相同,则返回 true
。否则,返回 false
。
checkPasswordsMatch()
函数接受两个密码作为参数,它使用 comparePasswords()
函数来检查两个密码是否匹配。如果密码匹配,则输出"Passwords match"。 如果密码不匹配,则输出"Passwords do not match"。
由于 comparePasswords()
函数是一个异步迭代生成器,因此我们可以使用 for await...of
循环来获取从它返回的所有值。
总结
异步迭代生成器是 ECMAScript 2018 (ES9) 中引入的新功能之一。 它使在实际开发中处理异步数据变得更加容易。本文的例子演示了如何使用异步迭代生成器检查两个口令是否相同。 通过使用这项技术,我们可以更简单,更安全地完成密码匹配工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b2190d48841e9894e69de5