首页>商店

学习足够危险的JavaScript:用JavaScript编写程序,发布包和开发交互式网站(live - lessons)

学习足够危险的JavaScript:用JavaScript编写程序,发布包和开发交互式网站(live - lessons)

您的浏览器不支持播放此视频。请下载文件来查看它。

在线视频

描述

  • 版权2022
  • 版本:1
  • 在线视频
  • ISBN-10: 0-13-784358-5
  • ISBN-13: 978-0-13-784358-9

7小时以上的视频教学

学会足够危险的JavaScript:用JavaScript编写程序、发布包和开发交互式网站著名的讲师Michael Hartl教授的概念,技能和方法,你需要用JavaScript专业地生产互动网站和通用编程。

概述

JavaScript是万维网的编程语言,它也正在发展成为一种功能强大的通用编程语言。您会喜欢这个系列用JavaScript教授编程的方式,在这里您不需要学习关于它的“一切”——只需要学习如何有效地使用它来解决实际问题。畅销书作者Michael Hartl通过让您尽快开始编写实用和现代的JavaScript程序来教授JavaScript,重点关注软件开发人员每天使用的真实工具。

即使您是编程新手,Hartl也可以帮助您快速构建技术复杂性,因为您可以扎实地理解面向对象和函数式编程的JavaScript,包括使用测试驱动开发和Node.js制作JavaScript模块。集中练习可以帮助你内化重要的事情,而不会把时间浪费在专业人士不关心的细节上。很快,就会像你一样出生知道了这些,你就会突然变得严肃起来危险的

关于讲师

迈克尔·哈特尔创造者是Ruby on Rails教程是web开发的主要介绍之一,也是Learn Enough的联合创始人和主要作者。此前,他曾在加州理工学院(Caltech)担任物理讲师,并在那里获得了卓越教学终身成就奖。他毕业于哈佛大学,拥有加州理工学院物理学博士学位,是Y Combinator企业家项目的校友。

技术水平

  • 初级到中级

学习如何

  • 使用几种不同的技术创建一个简单的hello, world程序
  • 在web上部署一个简单的动态JavaScript应用程序
  • 使用字符串、数组和其他本机对象
  • 定义函数
  • 使用JavaScript进行函数式编程
  • 利用测试驱动开发并发布Node模块
  • 编写shell脚本
  • 开发一个交互式JavaScript图像库应用程序

谁应该修这门课

  • 寻找JavaScript实用介绍的新程序员和开发人员

课程要求

  • 唯一的先决条件是熟悉基本的开发工具(命令行、文本编辑器和Git),以及开始的HTML和一点CSS
  • 一些编程经验是有用的,但不是必需的

课程描述

第一课:你好,世界!
在第1课中,您将从“Hello, World!”这个历史悠久的主题的四个变体开始学习JavaScript。“Hello, World!”的主要目的是确认您的系统是否被正确配置为执行一个简单的程序,该程序将字符串“Hello, World!”或其他类似的变体打印到屏幕上。通过设计,该程序很简单,使您能够首先将注意力集中在使程序运行的挑战上。为了给你最好的JavaScript编程的广泛介绍,学习足够多的JavaScript是危险的主要采用四种方法:一、前端JavaScript程序在用户的浏览器中运行;二、一个带有Node.js读取、求值、打印、循环的交互式提示符,也称为REPL;三、独立的JavaScript文件,包括Node Package Manager;第四,shell脚本,在学习足够多的开发工具是危险的.由于JavaScript最原始和最常见的应用是编写在web上执行的程序,我们将从编写和部署一个程序开始,在web浏览器中显示“Hello, World!”然后,我们将使用JavaScript执行系统node .js编写一系列三个程序,首先在节点REPL中,然后在名为hello.js的JavaScript库文件中,最后在可执行的shell脚本中你好

第二课:琴弦
第2课介绍了字符串,这可能是Web上最重要的数据结构,因为Web页面最终由发送到浏览器的字符串和字符组成。许多其他类型的程序也需要字符串操作。因此,字符串是开始Ruby编程之旅的好地方。本课程从什么是字符串以及如何创建字符串开始,包括单引号和双引号字符串。然后学习如何将一个字符串连接到另一个字符串。接下来,您将学习如何从终端窗口打印到屏幕。作为其中的一部分,您将看到JavaScript布尔变量和控制流的第一个示例。最后,您将学习如何使用for循环遍历字符串,使您能够一次访问一个字符。

第3课:数组
在第3课中,您将学习数组数据类型,它是按照特定顺序存放任意元素的通用JavaScript容器。首先通过字符串分割方法显式地连接字符串和数组,然后在本课的其余部分学习各种数组方法。学习了拆分字符串之后,您将看到如何访问结果数组中的元素。您会发现相同的语法也适用于字符串,从而进一步加深了这两种数据类型之间的联系。接下来,您将学习各种额外的数组方法,从使用数组切片同时选择单个元素和多个元素开始,包括使用负下标选择数组中最后一个元素的聪明技术。然后学习如何对数组排序,发现途中JavaScript的默认排序算法对数值数组用处不大,这个问题在第5课中已经解决了。您还将学习如何反转数组,这一能力将在本教程后面学习检测回文时得到很好的应用。接下来,您将看到如何使用添加和删除数组元素流行然后了解如何使用数组连接撤销字符串分割。最后,您将学习如何使用相同类型的方法遍历数组for循环这是为第5课和第6课更高级的技术做的有价值的准备。

第4课:其他原生对象
在第4课中,您将继续学习其他一些重要的JavaScript对象,这使您有机会了解数学、日期、正则表达式和泛型对象。像大多数编程语言一样,JavaScript支持大量开箱即用的数学运算,比如加法、减法、乘法和除法。它还包括一个数学库。它还支持更高级的运算,如对数和三角函数。您还将学习如何在JavaScript中处理日期,例如获取年、日或确切的时间。这是您第一次有机会使用函数,一个所谓的构造函数。这是创建新对象的标准JavaScript方法。本课包括对正则表达式这个强大主题的介绍,正则表达式在学习足够多的开发工具是危险的在文本编辑器和grep命令的上下文中。通常被称为regex正则表达式是一种强大的迷你语言,用于在文本中匹配模式。您将学习如何使用正则表达式快速搜索字符串,例如一行中的5位数字,从而匹配标准的美国邮政编码。本课程以介绍JavaScript中的纯对象结束。我们将使用这样的对象来创建键值对的集合,有时称为关联数组,它类似于常规数组,但使用字符串而不是整数作为索引。您应用这个重要的对象类型来编写第一个实质性的JavaScript程序,一个shell脚本,用于计算文本中唯一的单词。

第五课:函数
在第5课中,您将学习如何定义JavaScript函数,从而实现诸如forEach函数式编程,这是第6课的主题。首先讨论定义JavaScript函数的几种等效方法,包括最近使用的粗箭头表示法,如果您以前没有见过它,可能会感到非常困惑。作为其中的一部分,您将学习如何对JavaScript数组进行数字排序,从而修复第3课中遇到的一个缺陷。您开始学习read-eval-print循环中的函数,也就是REPL。然后学习如何将函数定义放入文件中以供以后使用。本课还介绍了如何在一行中使用多个函数,这种技术称为方法链接.您可以使用方法链接对回文函数进行第一次定义,以查看字符串前后是否相同。本课最后讨论遍历数组的forEach方法,它通常提供了一种比第2课中介绍的for循环更方便的处理数组元素的方法。

第六课:函数式编程
在学习了如何定义函数并在不同的上下文中应用它们之后,在第6课中,您将通过学习函数式编程的基础知识将编程提升到一个新的水平。这是一个具有挑战性的课程,你可能需要看几次才能吸收所有内容,但回报确实很丰富。这节课的重点是在函数式编程中常用的三个函数,称为地图过滤器,减少.第一个示例是map函数,它允许您在元素数组上映射函数。它通常是循环的强大替代方案。到目前为止,您一直在使用一种称为命令式编程,但您将看到如何使用map将五行循环压缩为一行。这种压缩在函数式编程中很常见。第二个函数是filter,它使您能够根据布尔标准过滤数据。这使您可以遍历数组并过滤掉不符合条件的任何内容。例如,您可以取一个整数数组,并只筛选可被2整除的数字,这为我们提供了一种仅选择数组中偶数的快速方法。我们的第三个函数是强大的reduce,这是一种强大的技术,它可以让我们真正理解许多示例,但使我们能够编写非常干净和简洁的代码。因为即使对于经验丰富的开发人员来说,理解reduce以及所有的函数式技术也是具有挑战性的,所以当与第8课中介绍的测试驱动开发相结合时,它尤其强大,但首先您需要学习如何定义自己的对象。

第7课:对象和原型
在第7课中,您将学习如何创建更通用版本的JavaScript对象,即同时具有属性(即数据)和方法(即函数)的对象。在JavaScript中定义对象的方法多种多样,令人眼花缭乱,但本课主要关注最经典的方法之一,即使用函数,这在第5课中首次介绍过。结果将是一个对象构造函数,该函数可用于创建或实例化一个名为an的新对象实例使用你在第4课看到的方法。这将为您提供了解javascript对象系统所需的背景知识,该系统基于模板对象和原型链。如果这看起来不是很清楚,别担心,它不是。没有人通过听到这样的定义来理解对象系统。相反,我们将研究一系列日益复杂的对象,使您能够通过从具体示例中归纳来理解JavaScript对象的本质。特别地,您创建了一个Phrase对象,该对象知道该短语是否为回文。然后添加一个TranslatedPhrase对象,该对象覆盖主palindrome方法,并替换已翻译的短语。然后使用强大的、甚至是危险的修改原生JavaScript对象的做法。这使您能够修改字符串原型本身,使每个字符串能够判断它是否是回文。

第8课:测试和测试驱动开发
尽管在介绍性编程教程中很少涉及,自动化测试是现代软件开发中最重要的主题之一。因此,第8课向您介绍了使用JavaScript进行测试,包括对测试驱动开发(TDD)的初步了解。第6课简要介绍了测试驱动开发,它承诺您将使用测试技术来添加查找回文的重要功能,即能够检测复杂的回文,例如“一个人、一个计划、一条运河——巴拿马!”或“女士,我是亚当!”这一课实现了这一承诺。首先使用流行的Mocha测试框架设置测试系统。测试当前回文代码并将其扩展到更复杂的短语的策略如下:第一,设置自动测试系统;第二,为现有的回文功能编写自动化测试;第三,为增强的回文检测器编写失败测试,也称为红色的(TDD周期的第一步称为red-green-refactor);第四,编写可能丑陋的代码以使测试通过,也称为绿色,这是循环的第二步;第五,重构代码,即在不改变其功能的情况下改变其形式。即使在重构之后,测试套件也应该保持绿色,从而完成红-绿-重构周期。事实证明,学习如何编写JavaScript测试也将使您有机会学习如何创建和发布自包含的软件包NPM模块这是现代JavaScript编程的另一项宝贵技能。

第9课:事件和DOM操作
在第9课中,您将返回到JavaScript的原生环境,并让新创建的Node模块在浏览器中工作,包括我们操作文档对象模型(DOM)的第一个示例。具体来说,您将创建一个简单的单页JavaScript应用程序,该应用程序接收来自用户的字符串,并指示该字符串是否是回文。该方法涉及逐步提高复杂程度,从简单的“hello world”风格的概念验证开始。然后添加提示/警报设计,这将激励引入事件侦听器。这涉及到添加一段代码,等待特定事件的发生,然后做出适当的响应。在这种情况下,侦听器将等待按钮被单击,然后提示用户输入一个字符串,然后该字符串将测试它是否为回文。接下来,用插入到页面本身的动态HTML替换警报。最后,添加一个HTML表单,这是一种比JavaScript提示符更方便的输入数据的方法。作为其中的一部分,您将更新事件侦听器,以便在用户提交表单时通过更新页面本身来进行响应,从而创建一个功能齐全的回文检测器。

第10课:使用Node.js的Shell脚本
在第10课中,您将回到命令行世界,并使用Node.js编写三个越来越复杂的shell脚本。目前,JavaScript在浏览器中的使用还没有JavaScript那么普遍,但随着JavaScript(特别是通过Node和npm)继续扩展其最初的web编程利基,它可以预期会增长。这些程序还可以作为用传统上被认为是脚本语言(如Perl、Python和Ruby)编写的类似程序的有用基础。也许令人惊讶的是,您会发现第9课中开发的文档对象模型操作技能在shell脚本中仍然很有用。实际上,您在第11课中使用的更高级的操作所需的方向上大大扩展了您的功能。本课的第一个程序展示了如何使用JavaScript从文件系统读取和处理文件的内容。接下来的程序将展示如何完成读取URL内容的类似任务。最后,编写一个现实生活中的实用程序。

第11课:完整的示例应用程序:图像库
在第11课中,您将把第9课和第10课的技术应用到一个真正的工业级网站。特别地,本课扩展了示例应用程序学习足够多的HTML, CSS和布局是危险的添加一个功能性图片库,该图片库可以根据用户单击动态更改图像、CSS类和页面文本。结果将是一个部署到实时Web的专业级网站。

关于培生视频培训188号金宝搏网页
培生出版专家主导的视频教程,涵盖广泛的技术主题,旨在教你成功所需的技能。这些专业和个人技术视频具有世界领先的作者讲师,由您信赖的技术品牌出版:Addison-Wesley, Cisco Press, Pearson IT Certification, Sams和Que。主题包括:IT认证、网络安全、思科技术、编程、Web开发、移动开发等。了解更多关于培生视频培训的信息188号金宝搏网页金宝搏188亚洲体育真人始乐informit.com/video

视频课程可供下载,以流媒体格式离线观看。在每节课中寻找绿色箭头。

示例内容

目录表

介绍

第一课:你好,世界!
主题
1.1 JavaScript简介
1.2 Web浏览器中的JS
1.3在REPL中的JS
1.4文件中的JS
1.5 Shell脚本中的JS

第二课:琴弦
主题
2.1字符串基础
2.2串联和插值
2.3印刷
2.4属性、布尔值和控制流
2.5方法
2.6字符串迭代

第3课:数组
主题
3.1分
3.2阵列接入
3.3阵列切片
3.4更多数组方法
3.5数组迭代

第4课:其他原生对象
主题
4.1数学与数字
4.2日期
4.3正则表达式
4.4普通对象
4.5应用:独特的单词

第五课:函数
主题
5.1功能定义
5.2文件中的功能
5.3方法链接
5.4每个迭代

第六课:函数式编程
主题
6.1地图
6.2过滤
6.3减少

第7课:对象和原型
主题
7.1定义对象
7.2原型
7.3修改本机对象

第8课:测试和测试驱动开发
主题
8.1测试设置
8.2初始测试覆盖率
8.3红
8.4绿色
8.5重构

第9课:事件和DOM操作
主题
9.1正常工作的回文页面
9.2事件监听器
9.3动态HTML
9.4表格处理

第10课:使用Node.js的Shell脚本
主题
10.1读取文件
10.2从url读取
10.3命令行DOM操作

第11课:完整的示例应用程序:图像库
主题
11.1准备图库
11.2更改图库图像
11.3设置镜像为当前镜像
11.4修改镜像信息
11.5结论

总结

更多的信息

金宝搏188亚洲体育真人始乐InformIT促销邮件和特别优惠

我希望收到独家报价,并听到有关InformIT及其品牌家族的产品。金宝搏188亚洲体育真人始乐我可以随时退订。

概述


培生教育有限公司(Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030)提供本网站,提供可通过本网站购买的产品和服务的信息。

本隐私声明概述了我们对隐私的承诺,并描述了我们如何收集、保护、使用和共享通过本网站收集的个人信息。请注意,培生的其他网站和在线产品及服务有其单独的隐私政策。

信息的收集和使用


为了开展业务并提供产品和服务,培生通过与本网站相关的几种方式收集和使用个人信息,包括:

问题及查询

对于查询和问题,我们会收集查询或问题,以及姓名、联系方式(电子邮件地址、电话号码和邮寄地址)以及通过“联系我们”表格或电子邮件自愿提交给我们的任何其他附加信息。我们使用这些信息来解决询问和回答问题。

在线商店

对于通过本网站上的在线商店下达的订单和购买,我们会收集订单详细信息、名称、机构名称和地址(如适用)、电子邮件地址、电话号码、送货和账单地址、信用卡/借记卡信息、送货选项和任何指示。我们使用这些信息来完成交易、履行订单、与下订单或访问在线商店的个人沟通,以及用于相关目的。

调查

培生可能提供提供反馈或参与调查的机会,包括评估培生产品、服务或网站的调查。参与是自愿的。培生收集调查问题中要求的信息,并使用这些信息来评估、支持、维护和改进产品、服务或网站,开发新产品和服务,进行教育研究以及调查中指定的其他目的。

比赛及绘图

偶尔,我们可能会赞助比赛或绘画。参与是可选的。培生收集参赛者姓名、联系方式和其他填写在参赛表格上的信息,以进行比赛或抽奖。培生可能会根据法律要求,从竞赛或抽奖的获胜者那里收集额外的个人信息,以便颁发奖品和用于税务报告目的。

时事通讯

如果您已选择接收电子邮件通讯或促销邮件和特别优惠,但想取消订阅,只需电子邮件information@金宝搏188亚洲体育真人始乐informit.com

服务公告

在极少数情况下,有必要发布严格与服务相关的公告。例如,如果我们的服务因维护而暂时停止,我们可能会向用户发送电子邮件。一般来说,用户不能选择退出这些通信,但他们可以停用他们的帐户信息。然而,这些通信在本质上不是促销。

客户服务

我们定期与用户沟通,以提供所要求的服务,并且当用户通过我们的网站提交信息时,我们会根据用户的意愿通过电子邮件或电话回复与他们的帐户有关的问题联络表格

其他信息的收集和使用


应用和系统日志

培生自动收集日志数据,以帮助确保本网站的交付、可用性和安全性。日志数据可能包括有关用户或访问者如何连接到本网站的技术信息,例如浏览器类型、计算机/设备类型、操作系统、互联网服务提供商和IP地址。我们将此信息用于支持目的和监控站点的运行状况、识别问题、改进服务、检测未经授权的访问和欺诈活动、预防和响应安全事件以及适当地扩展计算资源。

网络分析

培生可能会使用第三方网络趋势分析服务(包括Google Analytics)来收集访问者信息,如IP地址、浏览器类型、参考页面、访问过的页面以及在特定网站上花费的时间。虽然这些分析服务以匿名方式收集和报告信息,但它们可能会使用cookie来收集网络趋势信息。收集的信息可能使Pearson(但不是第三方web趋势服务)能够将信息与应用程序和系统日志数据链接起来。培生将这些信息用于系统管理、识别问题、改进服务、检测未经授权的访问和欺诈活动、预防和响应安全事件、适当扩展计算资源以及支持和提供本网站及其服务。

Cookies及相关技术

本网站使用cookie和类似的技术来个性化内容,测量流量模式,控制安全性,跟踪本网站信息的使用和访问,并提供基于兴趣的消息和广告。用户可以通过浏览器管理和阻止cookie的使用。禁用或阻止某些cookie可能会限制本网站的功能。

不要跟踪

本网站目前不响应禁止跟踪信号。

安全


培生采用适当的物理、管理和技术安全措施来保护个人信息免遭未经授权的访问、使用和披露。

孩子们


本网站不面向13岁以下儿童。

市场营销


培生可以向用户发送或直接发送营销信息,前提是

  • 培生不会将作为K-12学校服务提供商收集或处理的个人信息用于定向或有针对性的广告。
  • 这种营销符合适用法律和培生的法律义务。
  • 培生不会故意直接或发送营销通信给个人谁表示了偏好不接受营销。
  • 在适用法律要求的情况下,对营销的明示或默示同意存在且未撤销。

培生可以在有限的基础上向第三方服务提供商提供个人信息,仅代表培生或培生作为其服务提供商的关联公司或客户进行营销。营销偏好可能随时发生变化。

更正/更新个人资料


如果用户的个人身份信息发生变化(例如您的邮寄地址或电子邮件地址),我们将提供一种方法来更正或更新用户提供给我们的个人数据。这可以在帐户页面.如果用户不再需要我们的服务,并希望删除他或她的帐户,请联系我们customer-service@金宝搏188亚洲体育真人始乐informit.com我们将处理用户帐户的删除。

选择/退出


用户可以在知情的情况下选择是否继续使用InformIT提供的某些服务。金宝搏188亚洲体育真人始乐如果您选择从我们的邮件列表中删除自己,只需访问以下页面并取消您不再希望接收的任何通信:www.金宝搏188亚洲体育真人始乐informit.com/u.aspx

出售个人资料


培生不会出租或出售个人信息以换取任何金钱。

虽然皮尔逊不出售个人信息,根据内华达州法律的定义,内华达州居民可以通过电子邮件请求不出售他们的个人信息NevadaDesignatedRequest@pearson.com

加州居民补充隐私声明


加州居民应该读读我们的加州居民补充隐私声明连同本私隐声明一并提交。的加州居民补充隐私声明解释培生遵守加州法律的承诺,并适用于通过本网站和服务收集的加州居民的个人信息。

分享与披露


培生可能会在以下情况下披露个人信息:

  • 这是法律规定的。
  • 经个人同意(或其父母同意,如果个人是未成年人)
  • 在法律允许或要求的范围内响应传票、法院命令或法律程序
  • 根据适用法律保护个人、数据、资产和系统的安全
  • 与出售、合资或以其他方式转让部分或全部公司或资产有关,但须遵守本隐私声明的规定
  • 调查或处理实际的或涉嫌的欺诈或其他非法活动
  • 行使其合法权利,包括执行本网站的使用条款或其他合同
  • 培生的附属公司以及为培生工作的其他公司和组织,他们有义务按照本隐私声明保护个人信息的隐私
  • 对于学校、组织、公司或政府机构,培生在学校或代表这些组织、公司或政府机构收集或处理个人信息。

链接


本网站包含到其他网站的链接。请注意,我们不负责此类其他网站的隐私做法。我们鼓励我们的用户在离开我们的网站时保持警惕,并阅读每个收集个人信息的网站的隐私声明。本隐私声明仅适用于本网站收集的信息。

请求及联络


联系我们查阅本私隐声明,或对您的个人资料私隐有任何要求或疑问。

本隐私声明的变更


我们可能会通过更新发布来修改本隐私声明。我们将在公告中注明修订的生效日期。通常,进行更新是为了提供更大的清晰度或符合法规要求的变化。如果更新涉及个人信息的收集、保护、使用或披露的重大变化,培生将通过本网站的显著通知或其他适当方式提供变更通知。在已发布的修改证明生效日期后继续使用本网站。如果您对本隐私声明有任何疑问或疑虑,或对任何修订有任何异议,请与我们联系。

最后更新:2020年11月17日