Skip to content
On this page

MentalaModels

let a = 10;
let b = a;
a = 0;

它运行后a 的 值是 多少?b的值是多少?,在进一步阅读之前先在脑海中解决它。

什么是心智模型

这些关于某些事物如何在您的脑海中运作的近似值被称为“心智模型”。

看看下面的代码

function duplicateSpreadsheet(original) {
  if (original.hasPendingChanges) {
    throw new Error('You need to save the file before you can duplicate it.');
  }
  let copy = {
    created: Date.now(),
    author: original.author,
    cells: original.cells,
    metadata: original.metadata,
  };
  copy.metadata.title = 'Copy of ' + original.metadata.title;
  return copy;
}

你能发现这段代码的错误么?,你能在脑海中构建出他们的模型么

如果你细心你就会发现

 copy.metadata.title = 'Copy of ' + original.metadata.title;

会改变原始值~

您可能已经注意到:

  • 此函数复制电子表格。
  • 如果未保存原始电子表格,则会引发错误。
  • 它会在新电子表格的标题前添加“副本”。

总结

既然您知道存在错误,您会以不同的方式阅读代码吗?如果您一开始使用“快速”思维系统,当您意识到代码中存在错误时,您可能会切换到更费力的“慢”系统。

当我们使用“快速”系统时,我们会根据代码的整体结构、命名约定和注释来猜测代码的作用。使用“慢”系统,我们逐步追溯代码所做的事情——一个累人且耗时的过程。

这就是为什么拥有一个准确的心智模型如此重要的原因。在你的脑海中模拟一台计算机是很困难的,当你不得不退回到“慢”的思维系统时,你的思维模型就是你可以依赖的。使用错误的心智模型,您将从根本上误解您的代码期望什么,并且您的所有努力都将付诸东流。

如果您根本找不到错误,请不要担心——这只是意味着您将从本课程中获得最大收益!在接下来的模块中,我们将一起重建 JavaScript 的心智模型,以便您可以立即发现此类错误。

这就是为什么我们需要建立对JS的心智模型

Released under the MIT License.