前言:
当前你们对“我的世界js制作教程”都比较看重,大家都需要知道一些“我的世界js制作教程”的相关内容。那么小编也在网摘上汇集了一些有关“我的世界js制作教程””的相关知识,希望咱们能喜欢,小伙伴们一起来学习一下吧!转载说明:原创不易,未经授权,谢绝任何形式的转载
开篇
当我们编写代码时,我们倾向于使用“快速思考系统”,这是一种基于模式匹配和直觉的思考方式。然而,这种思考方式往往容易忽略一些细节或错误。相反,我们还有一种“慢速思考系统”,它能够进行复杂的推理和规划,但是需要更多的精力和时间。
本文旨在让你意识到自己的“心智模型”,即他们如何理解和想象变量、操作符等基本编程概念。这些心理模型可以来自于我们的日常生活,也可以来自于我们学习过的其他领域,如数学等。它们对我们如何理解代码起着重要的影响,但有时候它们可能是错误的。因此,我们需要不断反思和调整自己的心智模型,以便更好地理解代码和解决问题,这也是我将本文作为入门JS的世界的第一篇文章的原因。
理解下面一段代码
请阅读下面的代码:
let a = 10;let b = a;a = 0;
代码运行后,变量a和b的值是什么?在继续阅读之前,自己先在脑海中计算一下。 如果你已经学习了一段时间的JavaScript,你可能会反对:“这个片段比我每天写的代码简单多了。有什么意义?” 这个练习的目的不是为了介绍变量,我们假设你已经熟悉它们了。相反,它的目的是让你注意和反思你的心智模型。
什么是“心智模型”
再次阅读上面的代码,确保了解结果。 (稍后我们将看到为什么这种意图很重要。)
当您第二次阅读它时,请密切注意您的头脑中正在发生的事情,一步一步地。您可能会注意到这样的独白:
let a = 10;
声明一个名为a的变量。将其设置为10。
let b = a;
声明一个名为b的变量。将其设置为a。
等等,a是什么?啊,它是10。所以b也是10。
a = 0;
将a变量设置为0。
因此,a现在为0,b为10。这就是我们的答案。
也许您的独白略有不同。也许您会说“分配”而不是“设置”,或者您会按略微不同的顺序阅读它。也许您得出了不同的结果。注意它究竟有何不同。请注意,即使这种独白也无法捕捉您头脑中正在发生的真正情况。您可能会说“将b设置为a”,但是将变量设置为什么意思呢?
您可能会发现,对于每个熟悉的基本编程概念(例如变量)以及对其进行的操作(例如设置其值),都存在一组根深蒂固的类比,您与之相关。其中一些可能来自真实世界。其他人可能来自您先学习的其他领域,例如数学中的数字。这些类比可能会重叠,甚至互相矛盾,但它们仍然有助于您理解代码中正在发生的事情。
例如,许多人最初将变量视为可以放置物品的“盒子”。即使您在看到变量时不再生动地想象盒子,它们仍然可能在您的想象中表现出“盒子”的特性。这些近似于您在头脑中的工作方式的想法称为“心理模型”。如果您已经编程了很长时间,可能很难,但请尝试注意和内省您的心理模型。它们可能是视觉、空间和机械心理快捷方式的组合。
这些直觉(比如变量的“盒子性”)影响着我们一生阅读代码的方式。但有时候,我们的心智模型是错误的。也许我们早期读的教程为了便于解释而放弃了正确性。也许我们将关于某个语言特性的直觉错误地转移了,比如从之前学习的语言中。也许我们从某段代码中推断出了一种心智模型,但从未验证过其准确性。
确定并修正这些问题是Just JavaScript的全部意义所在。我们将逐步建立(或者可能是重建)你对JavaScript的心智模型,使其准确且有用。良好的心智模型将帮助你更快地发现和修复错误,更好地理解他人的代码,并对自己编写的代码感到自信。 (顺便说一下,a是0,b是10是正确的答案。)
编码,快与慢
《思考,快与慢》是一本广受欢迎的非小说类书籍,作者是丹尼尔·卡尼曼。它的核心观点是,人类在思考时使用两种不同的“系统”。
每当我们可以的时候,我们就依赖于“快速”系统。我们与许多动物共享这个系统,这给了我们惊人的能力,如能在不摔倒的情况下行走。这个“快速”系统擅长模式匹配(这对生存必不可少!)和“直觉反应”。但它在规划方面不太好。
得益于额叶的发展,人类独特地拥有一种“慢速”思维系统。这种“慢速”系统负责复杂的逐步推理。它让我们能够计划未来事件,参与争论,或跟随数学证明。 因为使用“慢速”系统会消耗大量精力,我们倾向于默认使用“快速”系统——即使在处理编码等智力任务时也是如此。
想象一下,你正在忙于工作,想快速确定这个函数是做什么的。快速看一眼它:
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 of”。
而你可能没有注意到(如果你注意到了,做得非常好!)的是,这个函数还意外地改变了原始电子表格的标题。
像这样错过错误是每个程序员每天都会遇到的事情。但是现在你知道有一个错误存在,你会以不同的方式阅读代码吗?如果你一直在“快速”模式下阅读代码,那么你很可能会切换到更费力的“慢速”模式来发现它。
在“快速”模式下,我们根据命名、注释和整体结构猜测代码的功能。在“慢速”模式下,我们逐步追溯代码的执行过程。
这就是为什么拥有正确的心智模型如此重要。在我们的头脑中模拟计算机已经很困难了——如果心智模型错误,这种努力就是浪费了。
如果你根本找不到错误,不要担心。这意味着你会从本系列文章中获得最大的收益!在接下来的文章中,我们将共同建立JavaScript的一些最基本概念——值和变量的心智模型。
结束
通过本系列文章,我们将逐步构建(或重建)你的 JavaScript 心智模型,使其准确且实用。一个好的心智模型将帮助你更快地找到和解决错误,更好地理解其他人的代码,并且让你对自己编写的代码感到自信。在下一个模块中,我们将开始为一些最基本的 JavaScript 概念——值和变量构建心智模型。无论你是新手还是有经验的程序员,本系列文章将帮助你更深入地理解 JavaScript,提高编程能力,并提供改善现有代码的技巧。谢谢你的学习,祝你好运!
今天的分享就到这里,希望对你有所帮助。如果你知道任何其他高效的 Python 工具库,欢迎你在评论区补充。感谢你的阅读,如果你喜欢我的分享,别忘了点赞转发,让更多的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。
标签: #我的世界js制作教程