前言
JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。我认为它的一个很大优势就是绝大部分浏览器都包含了JavaScript的解释器,我们在学习JavaScript时不需要安装任何开发软件,只要写一个网页文件,嵌入JavaScript代码就能在浏览器中进行代码的调试,非常方便。
学习JavaScript是一直以来停留在我脑海中的一个想法,但一直未能实施,真正让我开始接触JavaScript,还得缘于前段时间我撰写《米思齐实战手册——Arduino图形化编程指南》这本书。因为米思齐是基于Blockly的,很多内容都靠JavaScript来完成,为了完成那本书的内容,我才开始沉下心来较为系统地学习JavaScript的内容。虽然在那本书中涉及JavaScript的内容较少,但这件事让我迈进了JavaScript的大门。
入门之后,我发现JavaScript中的canvas(画布)应用这块内容非常有意思,于是就在少年创学院开了一期JavaScript培训班,主要内容就是在canvas中实现简单的平面游戏。在教学的过程中,我一方面对自己学习成果进行检验,一方面温故而知新。实际上,在这个过程中,这些小学员确实让我对之前学习的内容的理解更加深刻了,这里要对沈加明、朱明帅、邵盈涵这几位同学表示感谢。在教学过程中,我还和他们一起在codecombat上应用JavaScript来用代码完成游戏的闯关,这个经历也让我意识到现在学习编写代码也可以是一件很有意思的事。
教学过程中的笔记,或者说备课写的文档,我在整理之后作为稿件投给了《无线电》杂志,最后也是杂志的周明编辑鼓励我将这些内容再整理成图书出版的。
对于我来讲,学习JavaScript还有一个好处就是让我的电子作品离IoT(物联网)更近了。在编写《Intel Edison智能硬件开发指南——基于Yocto Project》以及翻译《Raspberry Pi编程指南——基于Python的游戏编程与机器人制作(第2版)》时,介绍到最后的网络应用时,我总有一种心有余而力不足的感觉,因为当赋予电子产品网购功能之后,应该能实现很多有意思的想法,但在网页交互方面,我只有一些HTML开发的经验,这就让我完成的内容只能是一个功能上的简单说明。而了解了JavaScript之后,我能够在显示的页面上实现很多动态效果,同时,我还发现目前有很多的硬件也能够用JavaScript来进行编程,HTML5以及微信小程序的新闻更激发了我学习JavaScript的热情。
本书面向的读者就是那些像我一样想了解JavaScript的人,不管有没有软硬件开发的基础,本书都能够让你对JavaScript有一个直观的了解。最后要感谢现在正捧着这本书的您,感谢您肯花费时间和精力阅读本书,由于本人水平有限,书中难免存在疏漏与错误,诚恳地希望您批评指正,您的意见和建议将是我巨大的财富。
程晨
2017.5.8