如何正确学习JavaScript

JavaScript032

如何正确学习JavaScript,第1张

买一本JavaScript的书籍就可以了,慢慢学,根据三个组成部分来学。

核心(ECMAScript)

文档对象模型(DOM)

浏览器对象模型(BOM)

核心(ECMAScript)

ECMAScript 并不与任何具体浏览器相绑定,实际上,它也没有提到用于任何用户输入输出的方法(这点与 C 这类语言不同,它需要依赖外部的库来完成这类任务)。那么什么才是 ECMAScript 呢?ECMA-262 标准(第 2 段)的描述如下:

“ECMAScript 可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的... ...”

Web 浏览器对于 ECMAScript 来说是一个宿主环境,但它并不是唯一的宿主环境。事实上,还有不计其数的其他各种环境(例如 Nombas 的 ScriptEase,以及 Macromedia 同时用在 Flash 和 Director MX 中的 ActionScript)可以容纳 ECMAScript 实现。那么 ECMAScript 在浏览器之外规定了些什么呢?

简单地说,ECMAScript 描述了以下内容:

语法

类型

语句

关键字

保留字

运算符

对象

ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他语言可以实现 ECMAScript 来作为功能的基准,JavaScript 就是这样:

每个浏览器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展,包含了 DOM 和 BOM(在以下几节中再探讨)。当然还有其他实现并扩展了 ECMAScript 的语言,例如 Windows 脚本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。

文档对象模型(DOM)

DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物。请考虑下面的 HTML 页面:

<html>

<head>

<title>Sample Page</title>

</head>

<body>

<p>hello world!</p>

</body>

</html>

这段代码可以用 DOM 绘制成一个节点层次图:

DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点。

浏览器对象模型(BOM)

IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 BOM 独树一帜且又常常令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。

BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:

弹出新的浏览器窗口

移动、关闭浏览器窗口以及调整窗口大小

提供 Web 浏览器详细信息的定位对象

提供用户屏幕分辨率详细信息的屏幕对象

对 cookie 的支持

IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象

由于没有相关的 BOM 标准,每种浏览器都有自己的 BOM 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。

技术网站类

1、博客园

一个面向开发者的知识分享社区,聚集许多优秀的开发者,分享知识、信息以及技术讨论。

2、CSDN

这个不用多说吧,中文最大的技术社区,全球知名中文IT技术交流平台,超多

大神在这里!

3、开源中国

目前国内最大的开源技术社区,资源、咨询、技术问答以及资源等等。

4、Golang中文社区

Go语言爱好者的学习家园,分享Go 语言知识、交流使用经验等

5、掘金

面向全球中文开发者的技术内容分享与交流平台,了解行业咨询、同行故事、开发资源,蛮有意思的,我平常把它当贴吧看。

私活平台类

1、程序员客栈

我不允许还有人不知道!它算是国内数一数二好用的自由工作平台,为中高端程序员、产品经理和设计师等等互联网相关人员提供稳定的线上工作机会,包括自由工作、远程工作和兼职工作,身边很多人都用过。

2、Devonrs

国外的一个互联网软件定制开发与软件外包开发服务平台,比较有意思的是平台用的是区块链技术支付,想了解国际市场的朋友可以看看。

3、开源众包

专业的软件众包平台。

4、码易众包

一站式软件外包平台。

5、Upwork

全球数一数二的自由职业市场,该平台也为多种不同行业提供服务,不仅限于软件外包,有和微软、Airbnb等知名企业合作过。想体验国外自由职业的朋友可以看看。

面试刷题类

1、力扣Leecode

这个也不用多介绍吧,新手到老鸟通用的网站,题型多题目多且经典,国内绝对是头部的刷题软件。

2、牛客网

集笔面试系统、题库、课程教育、社群交流、招聘内推于一体。

3、北京大学POJ

中国最受欢迎OJ之一,各式各样各种难度的题目都有。

4、自学SQL网

一个能够在线练习SQL的网址,由浅入深。

5、赛码

互联网名企笔试真题库。

学习网站类

1、菜鸟教程

提供了最全的的web技术基础教程,以及HTML教程、CSS教程、Javascript教程、Python基础教程,PHP教程等。

2、慕课网

编程技能学习平台,涉及JAVA、前端、Python、大数据等60类主流技术语言。

3、W3school

涵盖从从基础的 HTML到CSS,乃至进阶的XML、SQL、 JS、 PHP 和 ASP.NET。

4、Gitchat

中国领先的开发者技术社区,以技术问答、技术专栏、技术课程、技术资讯为核心。

5、courser

大型公开在线课程项目,由美国斯坦福大学两名计算机科学教授创办,在线提供网络公开课程。

JavaScript 的标准是 ECMA 的 ECMA-262 及 W3C 的 DOM Level 1、DOM Level 2、DOM Level 3、DOM events 等系列标准,PDF 文档可以在 ECMA International 和 W3C 官方网站上下载。

CSS 的标准是 W3C 的 CSS Level 1、CSS Level 2 等系列标准,PDF 文档可以在 W3C 官方网站上下载。

不过这些标准只能用于参考,不适合编程学习。要学习 JS 或 CSS 语法和编程方法需要看教程或参考书。在线学习可以去 W3School (w3school_com_cn),那里包括全部 Web 技术的学习资料,网上有打包的 CHM 文档。

下载地址和文档已经发到邮箱了。