核心(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 文档。
下载地址和文档已经发到邮箱了。