JS引擎执行这句代码时,在内部做了很多工作,用伪代码模拟其工作流程如下: (1)创建一个空对象obj; (2)把obj的__proto__ 指向Animal的原型对象prototype,此时便建立了obj对象的原型链:obj->Animal.prototype->Object.prototype-> ...
分类:
Web程序 时间:
2017-05-09 23:12:42
阅读次数:
362
原型链的形成真正是靠__proto__ 而非prototype, 当JS引擎执行对象的方法时,先查找对象本身是否存在该方法, 如果不存在,会在原型链上查找,但不会查找自身的prototype。一个对象的__proto__记录着自己的原型链,决定了自身的数据类型,改变__proto__就等于改变对象的 ...
分类:
其他好文 时间:
2017-05-09 13:45:36
阅读次数:
240
浏览器内核包括渲染引擎和JS引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具。它负责取得网页的内容(HTML、XML、图象等等)、整理信息(例如加入CSS等),以及计算网页的显示方式然后会输出至显示器或打印机 渲染引擎工作流程 HT ...
分类:
其他好文 时间:
2017-05-06 11:50:45
阅读次数:
152
浏览器内核主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。 ...
分类:
其他好文 时间:
2017-04-30 19:24:23
阅读次数:
168
一开始,js中有个参数名为context,js脚本为 var myobj = eval(context);var len = myobj.length; 无论如何都获取不到len,提示未定义len=sun.org.mozilla.javascript.internal.Undefined 折腾了好久 ...
分类:
编程语言 时间:
2017-04-25 17:13:28
阅读次数:
151
什么是内核 浏览器内核分为渲染引擎和js引擎,渲染引擎渲染页面,js引擎解析javaScript语言,所以浏览器内核的不同对于网页语法的解释也不同,渲染效果也不同 浏览器的核心部分是渲染引擎 内核及兼容性写法 Gecko内核 css前缀为"-moz-" 火狐浏览器 Presto内核 css前缀为"- ...
分类:
Web程序 时间:
2017-04-15 19:57:24
阅读次数:
208
1- 变量 变量提升: 由于js引擎的工作方式: 县解析代码获取所有被声明变量后一行一行运行 2- 变量作用域 用var声明的变量叫局部变量。 而局部变量仅仅在其所在的函数范围内生效,生效的范围 被称为变量作用域。 3- 一等公民 即在js的世界里,函数作为一等公民可以赋值、传参、 返回,真样的函数 ...
分类:
其他好文 时间:
2017-03-27 21:56:40
阅读次数:
122
在讲之前,大家都知道js是基于单线程的,而这个线程就是浏览器的js引擎。 首先来看一下大家用的浏览器都具有那些线程吧。 假如我们要执行一些耗时的操作,比如加载一张很大的图片,我们可能需要一个进度条来让用户进行等待,在等待的过程中,整个js线程会被阻塞,后面的代码不能正常运行,这可能大大的降低用户体验 ...
分类:
编程语言 时间:
2017-03-21 19:12:34
阅读次数:
277
If you can't measure it,you can't improve it --Peter Drucker 像素渲染的流水线 1.下载HTML文档 2.解析HTML文档,生产dom 3.下载文档中引用的css、js 4.解析css样式表,生成cssom 5.将js代码交给js引擎执行 ...
分类:
其他好文 时间:
2017-02-22 18:11:57
阅读次数:
153
浏览器是多线程的,它们在内核制控下相互配合以保持同步。一个浏览器至少实现三个常驻线程:JavaScript引擎线程,GUI渲染线程,浏览器事件触发线程。 1) javascript引擎是基于事件驱动单线程执行的(可以修改DOM,简单化处理了),要实现ECMAScript标准。JS引擎一直等待着任务队 ...
分类:
编程语言 时间:
2017-02-19 15:40:06
阅读次数:
289