如何正确学习JavaScript
2016-07-01 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
买一本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 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。
核心(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 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。
2016-07-01 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
关注
展开全部
既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,却是很难找到一份高效而实用的方法去学习这个“web时代的语言”。
有一点需要注意,几年前我们需要知道一个真正的服务器端语言(比如PHP,Rails,Java,Python 或者 Perl)去开发可扩展,动态的,数据库驱动的web应用,而现在只用JavaScript就可以实现了。
不要这样学习JavaScript
不要一开始就埋头在成堆的JavaScript在线教程里 ,这是最糟糕的学习方法。或许在看过无数个教程后会有点成效,但这样不分层次结构地学习一个东西实在是十分低效,在实际用JavaScript建立网站或web应用时你还是会频繁的卡住。总的来说,这种学习方法会让人不知道如何将语言当做工具来使用——当做个人工具来用。
另外,也许有人会建议从尊敬的JavaScript教父Douglas Crockford写的《JavaScript语言精粹》开始学习JavaScript。然而,虽然Crockford先生对JavaScript无所不知,被誉为JavaScript世界的爱因斯坦,但他的《JavaScript语言精粹》并不适合初学者学习。这本书没有通透、清晰、明了的阐述JavaScript的核心概念。但对于更高级的学习路线,我倒会建议你看看Crockford先生的视频。
还有,不要只从Codecademy等网站学习JavaScript,因为即使知道怎么编写一大堆JavaScript代码小片段,还是不能学会怎么建立一个web应用程序。即便如此,在后面我还是会建议把Codecademy当做补充的学习资源。
本课程资源
更新:Reddit用户d0gsbody4月8号在Reddit上建立了一个学习小组。他和其他组员都非常积极和乐于助人。我建议你加入这个小组,他们会让你保持积极性且帮助你更好的学习JavaScript。毕竟独自折腾JavaScript还是有点难度的。链接:Learning JS Properly – Study Group on Reddit
请在以下两本书中选一本,第一本比较适合有编程经验的人,而另一本则适合完全没有编程经验的初学者。
我个人推荐第一本书,因为作者对各个知识点都阐述得非常好且涵盖了一些高级JavaScript知识点。但是,要看懂这本书你至少要对web开发有一定的基本了解。所以,如果你有一点点编程经验或者web开发经验(不一定是JavaScript),那就买这本书吧。
如果你没有编程经验,可以买这本:
纸质版(英文) :JavaScript: The Definitive Guide
纸质版(中文) :JavaScript权威指南(第6版)
Kindle版(英文):JavaScript: The Definitive Guide
Kindle版(中文):JavaScript权威指南(原书第6版)
纸质版(英文) :Professional JavaScript for Web Developers
纸质版(中文) :JavaScript高级程序设计(第3版)
Kindle版(英文):Professional JavaScript for Web Developers
Kindle版(中文):JavaScript高级程序设计(第3版)
免费注册Stack Overflow,这是一个编程领域的问答论坛。在这里提问题得到的回答比Codecademy要好,哪怕你的问题非常基础,看起来很傻(记住,从来没有愚蠢的问题)。
免费注册Codecademy,这是一个在线学习平台,你可以直接在浏览器里面写代码。
JavaScriptIsSexy上的一些博文,包括对象,闭包,变量的作用域和提升,函数等等。
有一点需要注意,几年前我们需要知道一个真正的服务器端语言(比如PHP,Rails,Java,Python 或者 Perl)去开发可扩展,动态的,数据库驱动的web应用,而现在只用JavaScript就可以实现了。
不要这样学习JavaScript
不要一开始就埋头在成堆的JavaScript在线教程里 ,这是最糟糕的学习方法。或许在看过无数个教程后会有点成效,但这样不分层次结构地学习一个东西实在是十分低效,在实际用JavaScript建立网站或web应用时你还是会频繁的卡住。总的来说,这种学习方法会让人不知道如何将语言当做工具来使用——当做个人工具来用。
另外,也许有人会建议从尊敬的JavaScript教父Douglas Crockford写的《JavaScript语言精粹》开始学习JavaScript。然而,虽然Crockford先生对JavaScript无所不知,被誉为JavaScript世界的爱因斯坦,但他的《JavaScript语言精粹》并不适合初学者学习。这本书没有通透、清晰、明了的阐述JavaScript的核心概念。但对于更高级的学习路线,我倒会建议你看看Crockford先生的视频。
还有,不要只从Codecademy等网站学习JavaScript,因为即使知道怎么编写一大堆JavaScript代码小片段,还是不能学会怎么建立一个web应用程序。即便如此,在后面我还是会建议把Codecademy当做补充的学习资源。
本课程资源
更新:Reddit用户d0gsbody4月8号在Reddit上建立了一个学习小组。他和其他组员都非常积极和乐于助人。我建议你加入这个小组,他们会让你保持积极性且帮助你更好的学习JavaScript。毕竟独自折腾JavaScript还是有点难度的。链接:Learning JS Properly – Study Group on Reddit
请在以下两本书中选一本,第一本比较适合有编程经验的人,而另一本则适合完全没有编程经验的初学者。
我个人推荐第一本书,因为作者对各个知识点都阐述得非常好且涵盖了一些高级JavaScript知识点。但是,要看懂这本书你至少要对web开发有一定的基本了解。所以,如果你有一点点编程经验或者web开发经验(不一定是JavaScript),那就买这本书吧。
如果你没有编程经验,可以买这本:
纸质版(英文) :JavaScript: The Definitive Guide
纸质版(中文) :JavaScript权威指南(第6版)
Kindle版(英文):JavaScript: The Definitive Guide
Kindle版(中文):JavaScript权威指南(原书第6版)
纸质版(英文) :Professional JavaScript for Web Developers
纸质版(中文) :JavaScript高级程序设计(第3版)
Kindle版(英文):Professional JavaScript for Web Developers
Kindle版(中文):JavaScript高级程序设计(第3版)
免费注册Stack Overflow,这是一个编程领域的问答论坛。在这里提问题得到的回答比Codecademy要好,哪怕你的问题非常基础,看起来很傻(记住,从来没有愚蠢的问题)。
免费注册Codecademy,这是一个在线学习平台,你可以直接在浏览器里面写代码。
JavaScriptIsSexy上的一些博文,包括对象,闭包,变量的作用域和提升,函数等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询