Appearance
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的心智模型