对于yield关键字理解正确的是( )

64 次浏览
  • A、yield后面的表达式表示迭代的结果
  • B、yield会导致浏览器运行阻塞
  • C、yield语句的返回结果是后面表达式的结果
  • D、yield语句可以用到普通函数中
yield xxx 表示当进行一次迭代后 iterator.next() ,将会把xxx作为迭代的结果返回,因此,A正确 JS是单线程语言,yield 并不会导致JS阻塞,从而也不会导致浏览器阻塞,我们感知上的“代码暂停”只是 yield 语法糖的效果,它本质上只是调用了 iterator.next() 之后, 没急着调用下一次,导致了生成器中的代码暂时没有继续往后执行,但JS线程仍然会继续执行生成器之外的其他代码,并不会阻塞。选项B错误 课程中明确说明了 yield xxx 整个表达式的返回结果,是下一次调用 iterator.next(aaa) 时传递的参数 aaa ,并非 xxx ,因此选项C错误 yield语句只能用在生成器中,选项D错误
挑战成功
一周前