javascript学习(ECMAScript,DOM,BOM)

我们一般学习js的时候大多应该是从dom操作开始的,它直接的效果就是改变网页,得到显而易见的效果,其实你只是学习了js的一部分。。。而我们也会错误的经常把这一部分直接叫做js(其实它只是js中的dom部分)。

第一部分:学习js
其实我们学习js是学习的三大模块分别是ECMAScript,DOM,BOM。
@1)ECMAScript:ECMAScript是一种由[Ecma国际](前身为[欧洲计算机制造商协会]制定的标准,描述了JS的语法和基本对象,其实ECMAScript是一个标准,JS只是它的一个实现(通俗的来讲js是一门语言,那么语言就有自己的语法规则,ECMAScript就是语法规则),ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力……”,即ECMAScript不与具体的宿主环境相绑定,如JS的宿主环境是浏览器,AS的宿主环境是Flash,ECMAScript描述了以下内容:语法、类型、语句、关键字、保留字、运算符、对象
@2)DOM:Document(文档对象模型)DOM 是为了操作文档出现的 API,document 是其的一个对象,描述了处理网页内容的方法和接口,是HTML和XML的API,DOM把整个页面规划成由节点层级构成的文档,DOM定义了一个HTMLDocument和HTMLElement做为这种实现的基础,就是说为了能以编程的方法操作这个 HTML 的内容(比如添加某些元素、修改元素的内容、删除某些元素),我们把这个 HTML 看做一个对象树(DOM树),它本身和里面的所有东西比如 <div></div> 这些标签都看做一个对象,每个对象都叫做一个节点(node)
@3)BOM:浏览器对象模型:BOM 顾名思义其实就是为了控制浏览器的行为而出现的接口。浏览器可以做什么呢?比如跳转到另一个页面、前进、后退等等,程序还可能需要获取屏幕的大小之类的参数。所以 BOM 就是为了解决这些事情出现的接口

第二部分:加深dom和bom在网页中的理解

image.png

1.dom就红色区域部分,bom为蓝色区域部分(地址栏,标签页,滚动条还有右键菜单(这里没有截出)等)其实我们很快就明白了dom操作就是改变网页元素的部分(html标签包含的部分)而bom就是控制浏览器的行为,比如说我们的页面长度超出浏览器的窗口,如果我们不做样式设置的话,那么浏览器会默认出现滚动条

第三部分:api的实现
既然ECMAScript,BOM,DOM都只是文档,那么他们靠什么来实现的呢?这里是最让人迷糊的地方,如果你已经读到这里了,那么其实你对js也有了一个轮廓的了解了,好,我们紧接着再来说他们的实现对象

@1)ECMAScript:Global对象是ECMAScript的终极兜底对象,换句话说,不属于任何其它对象的属性和方法都会是Global的属性和方法,比如全局变量和函数,这里又有迷惑了,全局变量和函数不是属于window的么,其实是这样的,ECMAScript虽然定义了这个global对象,但是并没有告诉我们如何直接访问Global对象,但web浏览器是将这个对象作为window对象的一部分来实现的,这里我们就会疑惑,既然有了global,定义window有什么意义呢,其实这也就回到了最初解释ECMAScript的时候(ECMAScript是一种由[Ecma国际](前身为[欧洲计算机制造商协会]制定的标准)和我们的浏览器厂商是没有关系滴,只是js这门语言运行需要依赖于一个宿主环境(浏览器),这里好比你学习c++,他要依靠一个编译器来解释执行一样,浏览器厂商要对global实现那么就统一用window啦,其实这里我们也就知道了,为什么我们有的事件,样式在chrome浏览器可以运行,在其它浏览器会出现问题呢,就是这个原因,规范是别人制定的,不同的浏览器厂商自己内部的实现细节会有差异,所以也就造成这种现象啦。

@2)DOM:javascript通过Document类型表示文档,在浏览器中,document对象是HTMLDocument(继承自Document的实例)表示整个HTML页面,document是window对象下面的一个属性

@3)BOM:BOM的核心对象是window,对就是刚才上面提到的window,因为都是由浏览器厂商实现的,它表示一个浏览器的实例,是这样的,比如我是浏览器厂商,我要实现对浏览器的操作,那我就给浏览器命名为window然后添加对浏览器的前进,后退的操作方法,既然我还要实现global,那我也用这个window对象实现就好啦,只不过在window下面分成不同的对象去实现不通过类型的操作,比如地址我就交给localtion对象去实现,对文档dom的操作我就交给document对象来实现,但是localtion和document 都是window对象的属性,其实这就好比公司一样,有一个大的总经理,但是总经理会给自己的公司分配不同的部门分别去做不同的事情这样便于管理

image.png

1.js-dom基础https://www.jianshu.com/p/cf3231c5e17d
2.js-bom基础https://www.jianshu.com/p/1e856f23cf88
3.js-ajax基础https://www.jianshu.com/p/8e982f5d7a4d
4.关于浏览器(呈现引擎/js引擎)https://www.jianshu.com/p/e9e0ed473dc8
5.js函数(call/apply/bind与this)https://www.jianshu.com/p/2d6907cc0760
6.js对象(原型对象与原型链)https://www.jianshu.com/p/df7dc2262bcd
7.js事件流https://www.jianshu.com/p/7f5f4c74dde8
8.javascript闭包https://www.jianshu.com/p/53724b8c5da3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,113评论 0 21
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,457评论 1 45
  •   ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么...
    霜天晓阅读 876评论 0 0
  • 前言 归根结底,代码都是思想和概念的体现。没人能把一种程序设计语言的所有语法和关键字都记住,可以查阅参考书来解决。...
    朱细细阅读 2,923评论 4 14
  • 火锅店生意不好怎么办? 我从农民工变成餐饮老板的创业经历 如果,不是偶然听朋友说到著名免费盈利模式创始人王顺杰老师...
    王顺杰9阅读 469评论 0 0