javascript高级程序设计第一章有感
第一章JavaScript简介
Javascript的诞生最早是为了处理表单数据验证的问题,以前主要是使用perl这个强大的服务端脚本语言处理的。在未诞生javascript之前,
人们每次提交表单就会与服务器交换数据,每一次请求都与服务器交互,若是仅仅只是一个字段没有填或者密码没有填,每一次都与服务器
端进行交互的话,会大大加重服务器那边的负荷,点击提交就会等待服务器端返回数据以及用户的体验也并不好。
Netscape公司决定发明一种客户端语言来处理这种简单的验证。最后布兰登艾维奇开发了Livescript,可以同时在浏览器与服务器中使用。
最后更名为javascript。Javascript受关注度越来越高,Netscape将自己定位为行业的领袖,微软欲与其竞争,在IE3中加入了名为Jscript的jav
ascript的实现,这两种版本的标准化通用化被提上日程,后定义为ECMAScript的新脚本语言标准。浏览器也各自将ECMAScript作为自己浏览
器实现的标准。也就是说我们所运行的浏览器,其实也是基于javascript来实现的,这就是为什么直接在控制台输入一些api会有很多东西比如函
数,对象或者能够直接运行的原因。也可以把浏览器当做是一个大型的javascript宝库,他里面什么东西都有,就看你的js怎么在这个宝库中展现
自己了。只是到了2008年的时候,五大浏览器才全部做到了与ECMA-262的兼容。IE8是第一个着手实现ECMA-262第五版的浏览器,并在IE9中
提供了完整的支持,火狐4也是紧随其后做到兼容。也就是说,在IE8之前,我们都是要处理浏览器兼容性问题的。
ECMAScript的版本也是极其让人头疼的,本来javascrit是弱类型语言,他没有真正的类的,但是ECMAScript4跨度太大,不仅有强类型语言还
有真正的类和继承,还定义了与数据交互的新方式。事实上javascript比ECMASCript-262规定的多很多,一个完整的JavaScript实现由三个不同的
部分组成。核心是ECMAScript,还有文档对象模型DOM,以及浏览器对象模型BOM。
DOM主要是提供访问和操作网页内容的方法和接口,像我们在网页上面进行的一些基本的交互,比如获取网页的内容,给网页添加颜色,或者
给网页上面的某个元素添加事件,或者操作某个表格或者删除表格中的某行,或者只是一个简单的鼠标移进移出等等。当我们要很密集的给网页添
加和删除内容的时候,就不得不提到的一个问题是dom操作速度很慢,会影响浏览器渲染的效率。其中 layout(布局)和paint(绘制)是最大的。
layout 就是布局变动造成重新计算(耗CPU,有时也很耗内存),paint 就是调用浏览器UI引擎进行渲染展示页面(耗CPU和内存)。像jquery的出现
只是为了减少DOM操作,而Vue和React的出现,则是实质性的减少DOM操作,它用虚拟DOM不会进行排版与重绘操作。虚拟DOM的损耗计算:总
损耗 = 虚拟DOM增删改 + (与Diff算法效率有关)真实DOM差异增删改 + (较少的节点)排版与重绘。真实DOM的损耗计算:总损耗 = 真实DOM
完全增删改 + (可能较多的节点)排版与重绘。像我们经常使用的图片懒加载方法,就是为了减少dom操作,避免图片加载过程中产生的性能问题。
通过动态创建img标签,动态加载图片,以减少dom操作。
通过动图我们可以更清晰的看到渲染的过程。




BOM主要是提供与浏览器交互的方法和接口。你想对浏览器进行的任何操作移动,缩放,关闭,甚至浏览器所在用户显示器的分辨率(screen),
以及浏览器所加载页面的详细信息(location)或者浏览器存储的用户信息(cookie)都可以通过其来实现。现在HTML5.20已经出来了,对已经纳入标准
的BOM来说,还是会因浏览器不同特性表现而异。
Tips:关于ES 6和ECMAScript2015是不是同一样东西呢?当然,由于是ECMA-262 的第六次变更,所有按照惯例称为ES6。但是为了更小版本频繁发布版
本,现在 标准叫法是:ECMAScript2015。 号外:ECMAScript2018也要来啦!!!
javascript高级程序设计第一章有感的更多相关文章
- 读书笔记 - javascript 高级程序设计 - 第一章 简介
第一章 简介 诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262 一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...
- javascript高级程序设计第一章
看后总结: 1.javascript的组成成分:ECMAscript+DOM+BOM
- javascript高级程序设计第二章知识点提炼
这是我整理的javascript高级程序设计第二章的脑图,内容也是非常浅显与简单.希望您看了我的博客能够给我一些意见或者建议.
- javascript高级程序设计第二章
看后总结: 1.js代码用得最多的两种加载方式: a)外部文件形式:<script type="text/javascript" src="jquery.min.j ...
- javascript 高级程序设计1--14章重点总结
js简介 首先介绍了js是一种专门与网页交互而设计的脚本语言.主要由ECMAScript 文档对象模型(DOM) 浏览器对象模型(BOM)三部分组成.分别用来提供核心语言,提供访问和操作网页内容的方法 ...
- 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript
1 <script>的6个属性 async 立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer 文档显示之后再执行脚本,只对外部脚本有效 lan ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- 《JavaScript高级程序设计》笔记——第一章到第三章
2019年,新年伊始,我打算好好重读一下<JavaScript高级程序设计>这本前端必备经典书.每天半小时. 以下内容摘自<JavaScript高级程序设计> 2019-2-1 ...
- JavaScript高级程序设计(第三版)学习笔记20、21、23章
第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...
随机推荐
- 在Ubuntu18.04下将应用程序添加到启动器
# 在启动器里面给应用程序添加一个快捷方式 在linux(ubuntu)平台下,很多小伙伴发现,自己去官网下载解压的软件不能自动添加到启动器,每次启动的时候需要再次进入软件目录输入命令,非常不方便.本 ...
- SC1243sensor噪点问题调试
接手一块SC1243sensor的板子调试,仔细核对了原理图和PCB发现,PCB不是很好,电源处理不够好,但是出图了,问题是有噪点,麻点,根据经验要求软件修改了PCLK的极性噪点消失,问题解决. 1: ...
- 一个数据表通过另一个表更新数据(在UPDAT语句中使用FROM子句)
在sql server中,update可以根据一个表的信息去更新另一个表的信息. 首先看一下语法: update A SET 字段1=B表字段表达式, 字段2=B表字段表达式 from B WHE ...
- linux-阿里云仓库搭建-搭建本地仓库-yum
以上是同步元数据信息 安装完成———————————————————————————— 本地库的搭建 是建立在rpm之上的封装 可用的包 把仓库信息链接到本地 使用中文显示, 我们平时用的是oracl ...
- 发布阶段 github和360移动助手及总结
经过一系列的冲刺和加工 最激动人心的无非在发布平台上公布上自己辛苦奋斗了一个周期的产品,这个时候的我们就像Iphone 6发布会上得CEO,为自己的产品完美画上了研发的句号. 接下来的日子就是准备ve ...
- 过滤器Filter的使用(以登录为例子)
使用过滤器步骤: (1)在web.xml文件中添加过滤器(以下例子是过滤多个请求) <!-- 用户登录过滤 --> <filter> <filter-name>lo ...
- vue 路由传参 params 与 query两种方式的区别
初学vue的时候,不知道如何在方法中跳转界面并传参,百度过后,了解到两种方式,params 与 query.然后,错误就这么来了: router文件下index.js里面,是这么定义路由的: { p ...
- MSTSC 3389 端口修改
1. 启动注册表编辑器. 2. 找到并单击以下注册表子项: 3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server ...
- Jquery ajax $getScript()和$getJSON和JSONP
- Mac上brew&thrift安装 以及在thrift架构下,自己新作了maven的小例 Demo
1.缘由 前几天偶尔在网上看到thrift的信息,其内容和作用极大的引起了我的兴趣,因为我也是做iOS开发的,通过在网上的查询发现信息虽然很多实用的很少,容易误导他人,经过自己的成功实践,做了笔录,为 ...