一个有用的 JavaScript 问题应该揭示一个心理模型,而不是奖励一个被记住的句子。用这些组来练习解释会发生什么,为什么会发生,以及您将如何验证它。

01

语言行为

  • 词汇范围和范围链如何影响关闭?
  • `this` 何时取决于调用位置,何时不取决于调用位置?
  • 隐含的强制可以引入什么实际的bug?
  • 原型如何支持代表团?
  • 当一个模块不止一次被评价时,有什么变化?
  • 财产描述符如何影响 API ?
  • 一个符号什么时候有用?
  • 浅重和深重的拷贝有何不同?
  • 在不同的平等行动下,是什么使得两种价值观平等?
  • 你怎么解释死亡时间区?
02

Async JavaScript 和浏览器

  • 描述涉及任务和排队的微任务的事件启动回合 。
  • 用户界面如何取消不再相关的请求?
  • 是什么原因导致一个无所事事的承诺拒绝?
  • 如何限制一批申请的货币?
  • 两个来电者如何分享一个飞行请求?
  • 什么时候 `Promise.allSettled` 比 `Promise.all` 更有用?
  • 如何防止过时的回复取代新数据?
  • 装载器拒绝后缓存条目会怎样?
  • 计时器在不活动标签中如何表现 ?
  • 前端系统可以出现后压在哪里?
03

执行和核查

  • 取消时执行解除。
  • 实施节流阀 并解释其领先和后继行为。
  • 创建未订阅支持的事件发送器 。
  • 以 TTL 和飞行中调试构建请求缓存 。
  • 平嵌数据而不突变输入.
  • 写一个带有明确停止策略的重试助手 。
  • 执行一个带有货币限制的小型任务调度器。
  • 将服务器数据规范化为实体映射 。
  • 创建记忆帮助器并描述其无效限制.
  • 视时间而定的函数的设计测试.
04

高级讨论

  • 运行时验证应坐落在打字前端何处 ?
  • 如何在不突破消费者的情况下,进化一个共享客户端 API ?
  • 在请求层中应该看到什么?
  • 你将如何调查长期生产任务?
  • 网络工人什么时候才有道理?
  • 捆绑边界如何影响运行时的行为?
  • 你会如何设计平滑降级?
  • 哪些安全假设永远不应只存在于客户端代码中?
  • 如何使处理错误的一致性而不隐藏上下文?
  • 浏览器的哪些限制会改变您的架构 ?
05

如何实践问题

  • 回答分为三段:机制、具体例子和权衡。
  • 只有在说明合同和重要边缘情况后才能写代码。
  • 验证一个成功案例,一个边界案例,和一个失败路径.
  • 将微弱的解释记录为练习题,而不是记起较长的脚本.
  • 说出什么证据可以改变你的决定
参考资料

主要来源

编辑审查
产品申报是根据目前的经验加以核实的。 发一更正.