JavaScript 是最流行的编程语言之一,所有现代浏览器(和多数古老浏览器)都支持它。其外沿在不断延伸,正逐渐被嵌入除浏览器外的其他众多环境中......毫不夸张地说,JavaScript 应用范围之广,项目之多,对开发人员的友好程度是其他编程语言难以企及的。
也因为 JavaScript 如此抢镜,被不少人冠以 “编程语言界第一网红” 的称号......当然,这绝非浪得虚名,比如程序员必赏年度大片《StackOverflow开发者报告》就揭秘了 最受欢迎编程语言花落JS ,Redmonk 2017年第 3 季度编程语言排行榜也把第 1 名颁给了JS(前两季也是,年度应该也跑不了)...再说GitHub上哪个家族项目最多...
StackOverflow 《2017开发者调查报告》最受欢迎编程语言
RedMonk 《2017开发者调查报告》最受欢迎编程语言
要说给这样名气正盛的编程语言写书,那还真不是个简单的工作,而且这书被划入了一个大名鼎鼎的系列书中—— Head First 。在IT技术领域,有哪个不知道动物出版社,有哪个不知道动物出版社旗下的 Head First 系列 ?
Head First 系列 O'Reilly出版社推出的一套入门指导型图书系列,由 Kathy Sierra 和 Bert Bates 策划创办。 Head First 系列强调图书的“非正统性”,强化读者的视觉感受和读者的参与度。图书增添了很多互动性强的谜题、笑话,摒弃“标准”的设计和布局,推崇会话式的写作风格,让读者可以参与到给定的话题当中。 Head First系列图书在豆瓣评分均在4.5星左右。
第一网红编程语言 + IT领域最为知名的入门书系列 → 这个大难题谁来解答?
Eric Freeman 和 Elisabeth Robson !先来认识一下这两位是何许人。
Head First 系列知名作者
Eric Freeman
Eric Freeman 耶鲁大学博士期间与行业翘楚David Gelernter一起从事研究,曾担任迪士尼公司首席技术官近十年,谙熟多个领域的语言。目前与Elisabeth创建WickedlySmart。
Head First系列创始人Kathy Sierra视其为难得的多面手(Kathy即将出版新书《用户思维+》)。
Head First 系列知名作者
Elisabeth Robson
Elisabeth Robson 软件工程师、作者、培训师。在耶鲁大学读书时就对技术产生了浓厚的兴趣,期间设计了一款可视化并行编程语言和软件架构。
Robson曾担任动物出版社项目主管,迪士尼数字媒体研发等,目前为WickedlySmart联合创始人。
这世界上高手多了去了,然而最为关键的,当然是这两位已经写出了《Head First HTML与CSS(第2版)》和《Head First Design Patterns》,在豆瓣上的评分均超过了9分。由此,我们今天的主角《Head First JavaScript程序设计》,千万开发人员怎会不期待,怎会不欢呼?
不好意思,有点激动:
知道大佬们读了这本书什么感觉吗?选几位大佬的评论大家感受一下:
“学海无涯,举重若轻,何需汗牛充栋。” ——Ward Cunningham,Wiki之父 “在我阅读过的著作中,让我觉得不可错过的如凤毛麟角(最多不超过10本),本书位列其中。” ——David Gelernter,耶鲁大学计算机教授 “它深深地打动了我,让我又哭又笑。” ——Daniel Steinberg,java.net主编 “本书让我爱不释手,忍不住当着妻子的面亲吻它。” ——Satish Kumar “运用大量图表,循序渐进,准确模拟了学习JavaScript的最佳方式。” ——Danny Goodman,Dynamic HTML: The Definitive Guide 作者
或许,别人说多少我们也很难真实体会,那么接下来,让大家先简单领略一下(图片可以放大)。
JavaScript 的工作原理
如何编写 JavaScript
如何将 JavaScript 代码加入网页
下面来看一个枯燥而平凡的网页,并使用<script>元素添加一些动态行为。请不要过度关注我们将添加的<script>元素的细节,你当前的目标是运行一些JavaScript代码。
如何编写语句
创建HTML时,你通常对文本进行标记,以指定其结构。为此,要给文本添加元素、特性和值。
CSS稍微有点不同。使用CSS时,你编写一系列规则,其中每条规则都指定了网页中的元素及其样式。
使用JavaScript时,你编写语句。每条语句都指定了计算的一小部分,而所有语句一起给网页添加行为。
变量和值
你可能注意到了,JavaScript语句通常包含变量。变量用于存储值。什么样的值呢?下面是一些示例。
除数字、字符串和布尔值外,变量还可存储其他类型的值,这将在稍后介绍;但不管存储的是哪种类型的值,变量的创建方式都相同。下面更深入地介绍如何声明变量。
自我表达
要使用JavaScript准确地表达自我,需要使用表达式。表达式的结果为值,前面的代码示例就包含多个表达式,下面是其中之一:
还有结果为true或false的表达式,这种表达式称为布尔表达式。请看下面的各个表达式,它们返回true还是false呢?
表达式的值还可能为其他几种类型,就现在而言,重点是牢记所有表达式的结果都为某种值:数字、字符串或布尔值。下面来看看表达式都有哪些作用。
* 假定变量 youKnowTheRest 的值为 “fragilisticexpialidocious”。
编写一个正式的应用程序
下面将新学到的JavaScript技能和console.log付诸应用,编写一个实用的应用程序。我们需要一些变量、一条while语句和一些带else子句的if语句。再进行简单打磨,不知不觉间就将得到一个正式的商务应用程序。查看最终代码前,先想想你会如何编写一个程序来显示经典歌曲 99 Bottles of Beer 的歌词。
棒打鸳鸯散
分手是痛苦的,但必须这样做。现在该将JavaScript代码提取出来,移到一个独立的文件中了,具体步骤如下。
1. 打开文件index.html,选择其中所有的JavaScript代码,即标签<script>之间的所有内容,如下所示。
2. 在编辑器中新建一个文件,将其命名为code.js,并将前面复制的代码粘贴到其中,然后保存。
3. 现在需要在文件index.html中添加一个指向文件code .js的引用,以便该网页加载时获取并加载文件code .js。为此,将文件index.html中的JavaScript代码删除,但保留<script>标签;再在<script>开始标签中添加一个引用code.js的src特性。
4. 外科手术到此结束,就这么简单。现在需要进行测试了。为此,再次加载index.html,结果应该与前面完全相同。请注意,这里将src特性设置成了code.js ,即假定这个代码文件与HTML文件位于同一个目录。
JavaScript 填字游戏
来玩一个填字游戏,放松一下心情,让你的神经完全处于松弛状态。
有没有围绕JS世界环游一圈的感觉?
往期精选文章 |
---|
使用虚拟dom和JavaScript构建完全响应式的UI框架 |
扩展 Vue 组件 |
使用Three.js制作酷炫无比的无穷隧道特效 |
一个治愈JavaScript疲劳的学习计划 |
全栈工程师技能大全 |
WEB前端性能优化常见方法 |
一小时内搭建一个全栈Web应用框架 |
干货:CSS 专业技巧 |
四步实现React页面过渡动画效果 |
让你分分钟理解 JavaScript 闭包 |
小手一抖,资料全有。长按二维码关注京程一灯,阅读更多技术文章和业界动态。