如何从0到1学习JavaScript?

每当我们要学习一种新语言时,我们的大脑就会产生无数种想法,例如,

  • 我应该从哪里开始?
  • 我应该如何学习?
  • 我为什么要学习这个?
  • 我应该学习几种其他语言? 等等。

JavaScript入门

1.历史

就像一个好故事一样,历史充满了需要解决的问题和冲突。 当今世界的问题已不是新问题,只是涂了一层新漆就一样。 在进入语言的语法和语义之前,请先了解一下语言的起源,这会激发我们学习该语言并帮助我们解决现有问题。

JavaScript是在Web浏览器的布局引擎中广泛实现的第一种脚本语言。 文档对象模型的历史与1990年代末Netscape Navigator和Microsoft Internet Explorer之间的“浏览器之战”历史以及JavaScript和JScript的历史交织在一起,JavaScript和JScript是第一种在布局中广泛实现的脚本语言。网络浏览器引擎。 这使Web开发人员可以与客户端交互地创建网页。

突然,这可能会潜入我们的脑海,

为什么要使用JavaScript? 为什么没有别的东西呢? 使网页具有交互性。

  • 这个博客是开始了解JavaScript历史的好地方。
  • 在youtube上观看道格拉斯·克罗克福德(Douglas Crockford)系列,从这里可以简要了解计算机和语言的起源。

2.环境

如今,JavaScript几乎可以在任何地方运行,从浏览器到服务器端,甚至可以在嵌入式系统中运行。 但是,最常见的JavaScript宿主环境是Web浏览器。 网页是通常以诸如HTML,XML之类的标记语言编写的文档,可以使用浏览器通过Internet或其他网络进行访问。 文档对象模型(DOM)是将HTML,XHTML或XML文档视为树形结构的应用程序编程接口(API),其中每个节点都是代表文档一部分的对象。 可以通过编程方式操作该对象,结果发生的任何可见变化都可以反映在文档的显示中。

在浏览器中呈现HTML页面时,浏览器将HTML下载到本地内存中,并自动对其进行解析以在屏幕上显示该页面。 JavaScript,

  • 可以添加,更改和删除页面中的所有HTML元素和属性
  • 可以更改页面中的所有CSS样式
  • 可以对页面中的所有现有事件做出反应
  • 可以在页面内创建新事件。

3.执行

JavaScript是单线程的,这意味着它一次只能做一件事。 它是一种基于原型的语言:意味着没有类和对象是使用克隆过程创建的。 这也是一种动态编程语言,这意味着对象的属性在实例化后可以轻松添加或删除。

通过了解JavaScript的构建基块以及它们如何一起发挥作用,您将能够编写更好的代码和应用程​​序。

简而言之,我们将介绍JavaScript的工作原理.JavaScript由称为JavaScript引擎的引擎运行 JavaScript引擎是执行JavaScript代码的程序或解释器。 Netscape Communications Corporation的Bredan Eich为Netscape Navigator Web浏览器创建了第一个JavaScript引擎。 该引擎的代码名为SpiderMonkey是用C ++实现的。 主要由Norris Boyd(也是Netscape的人)创建的Rhino引擎是Java的JavaScript实现。 该技术的应用包括Apple Safari 4的Nitro,Google Chrome V8和Mozilla Firefox 3.5的TraceMonkey。

这是Chrome V8 JavaScript引擎的简化视图,

该引擎包括两个主要组件:

  • 内存堆-发生内存分配的地方
  • 调用堆栈-这是代码执行时堆栈框架所在的位置

调用堆栈

调用堆栈是一种数据结构,它基本上记录了我们在执行过程中在程序中的位置。 如果我们进入一个函数,引擎会将其放在“调用堆栈”的顶部。 如果我们从函数返回,那么它将弹出堆栈顶部。

在这里详细了解JavaScript的工作原理。

4,获取语法

从这些交互式站点中的任何一个学习语言的语法

  • W3学校
  • FreeCodeCamp
  • 代码学校
  • 学习Js

如果您希望有人教您,这里提供了一些视频教程

  • 频道9
  • 课程时代

Mozilla开发人员网络可以在那里以清晰明了的方式向您解释这些概念。

“我可以使用”提供了最新的浏览器支持表,以支持台式机和移动Web浏览器上的前端Web技术。

5,玩有趣的项目

尝试开发一种已经存在的类似产品,以便在遇到这种情况时可以从某人那里获得帮助。 有一些简单的Java脚本项目供初学者使用

  1. 剪刀石头布
  2. Tick Tack Toe项目
  3. 更多练习

6,进入在线/离线社区寻求支持

当您开始编写自己的代码时,您可能会受到打击,并可能寻找可以帮助您的人! “搜索错误跟踪”可以在大多数时间为您提供帮助。 如果它不寻求在线社区的帮助,

  • 堆栈溢出
  • Reddit问
  • 通过堆栈溢出的软件工程堆栈交换社区

在这里您可以找到成千上万对学习和帮助他人感兴趣的自学者。

参加JavaScript在您周围和周围聚会,以通过JavaScript程序员和发烧友开发网络。

7.构建代码

当您开始考虑编写更清晰,更有条理的JavaScript代码时,您将寻求有关设计模式的帮助。 它们特别在维护和代码重用领域为我们提供帮助。 设计模式不是可直接在您的代码中使用的代码段,而是设计出如何解决软件工程问题的方法。

设计模式通常被定义为对反复出现的设计问题进行时间检验的解决方案。 设计模式起源于土木工程师克里斯托弗·亚历山大(Christopher Alexander)的工作,他讲述了解决与建筑物和城镇有关的设计问题方面的这种经验。 亚历山大想到,某些设计构造一次又一次地使用会达到预期的效果。 他记录并发表了他所获得的智慧和经验,以便其他人可以从中受益。 大约15年前,软件专业人员开始将Alexander的原理纳入早期设计模式文档的创建中,以作为初学者的指南。 这项早期工作使其他人撰写了有关设计模式的文章,并最终在1995年由Eric Gamma,Richard Helm,Ralph Johnson和John Vlissides撰写了《 设计模式:可重用的面向对象软件的元素》,该出版物对设计模式以来。 格局不过是软件开发中常见问题的解决方案。 该解决方案有助于以最小的耦合来开发高内聚力模块。 它们隔离了系统需求中可能存在的可变性,从而使整个系统更易于理解和维护。 而且,它们还可以使设计人员之间的交流更加有效。

8.贡献

学习了该语言的基础知识之后,就可以为一些开源项目做出贡献。

贡献于开源项目的好处包括:

  • 经验。 您将使用一些您可能在日常工作中或练习东西时可能不会使用的东西。
  • 向全世界展示您的开发技能
  • 您将比“简单地”使用该技术更深入地了解该技术。
  • 您向同行学习。 您将了解有关软件管理,版本控制系统,代码审查以及在工业软件开发过程中实践的其他内容的知识。

您可以为开放源代码做出贡献,例如,

  • jQuery —简化JavaScript编程的轻量级库
  • Bootstrap —一个免费的开源前端库,用于设计网站和Web应用程序。

参考文献:

  1. https://blog.sessionstack.com/
  2. JavaScript在v8引擎中如何工作?
  3. 了解JavaScript引擎
  4. 网络如何运作,JavaScript发挥什么作用?
  5. 浏览器如何工作:现代网络浏览器的幕后花絮
  6. 开始学习前端Web开发时需要完成的五个项目
  7. 一些有趣的项目可以尝试:编码挑战
  8. 了解JavaScript中的设计模式
  9. 什么是设计模式,为什么我需要它们?
  10. JavaScript中的设计模式
  11. 通过Addy Osmani学习JavaScript设计模式
  12. 开源JavaScript项目
  13. 向MDN学习JavaScript (地球上最好的地方,以清晰清晰的方式学习JavaScript)