1、JS引擎是单线程,但浏览器是多线程 2、浏览器内核可能有如下线程:界面渲染线程、事件响应线程、定时器线程 3、JS引擎运行脚本时,界面渲染线程是挂起状态 4、当JS脚本对界面进行操作时,并不会立即体现出来,先放到一个执行队列里。须待JS引擎空闲时,界面渲染线程从执行队列里去取,然后体现 5、用户 ...
分类:
Web程序 时间:
2016-07-12 13:45:43
阅读次数:
212
预期:分别输出数字 1-5,每秒一次,每次一个。 实际上,会每秒一次输出 5次6,。 知识点: JS引擎是单线程的,定时器的工作方式:按指定时间间隔,将定时器的代码添加到JS引擎的消息队列;而非到了指定的时间立即执行回调函数。 在上例中, 作用域 尽管循环中的五个函数在各个迭代中分别定义,但都被封闭 ...
分类:
其他好文 时间:
2016-07-12 00:01:19
阅读次数:
467
先来思考一个问题,JS 是单线程的么?为什么单线程的JavaScript却能让AJAX异步发送和回调请求,还有setTimeout也看起来像是多线程的?还有non-blocking IO, event loop等概念。 目录: https://developer.mozilla.org/zh-CN/ ...
分类:
编程语言 时间:
2016-07-11 23:40:25
阅读次数:
186
1、变量提升:只要变量在代码中进行了声明,无论它在哪个位置上进行声明, js引擎都会将它的声明放在范围作用域的顶部; 2、函数提升:只要函数在代码中进行了声明,无论它在哪个位置上进行声明, js引擎都会将它的声明放在范围作用域的顶部; 从上可以看出,变量或函数声明都会别放到当前作用域的顶部,那么问题 ...
分类:
其他好文 时间:
2016-07-08 13:36:23
阅读次数:
131
异步编程 node.js 编程的直接体现就是回调,异步编程依托于回调来实现: node使用了大量的回调函数,所有API都支持回调函数 。如读取文件等。 这里对不懂线程和异步和同步的稍微解释下这三个名词 。 线程 : 简单的说就是做一件事 . 即执行一段程序代码 。js引擎就是一个单线程 的 处理 方 ...
分类:
Web程序 时间:
2016-07-05 06:19:36
阅读次数:
186
1.less是什么? 答:将CSS赋予动态语言的特性, 变量,继承,运算,函数。 (less就是一个用js实现的CSS解析器,运行要依赖js引擎)。 2.运行原理: 按照指定语法规则写好less文件,然后引入页面(在浏览器环境下),再引入less解析器(less.js) 这时我们就可以将less文件... ...
分类:
其他好文 时间:
2016-07-04 20:39:02
阅读次数:
134
js没有私有作用域的概念,避免命名冲突,引入了“匿名包裹器”或者“命名空间”的写法,即用匿名函数作为一个容器 js引擎在执行js代码时会“函数声明提升”,而函数表达式会从上至下逐行执行 //在function前面使用(),!,+,-,= 可以将函数声明转换成函数表达式,消除了js引擎对函数声明和函数 ...
分类:
Web程序 时间:
2016-07-04 11:53:11
阅读次数:
203
基础:1.本地存储 2.后端逻辑 DNS寻址以及IP解析访问 Network 下的 Headers -> Remote Address 一样可以访问本站 WebServer 背后的事 性能优化包括前端、后端、网络以及硬件机器 页面渲染流程HTML页面请求浏览器的js引擎 尽量减少页面的reflow防 ...
分类:
其他好文 时间:
2016-06-26 23:45:36
阅读次数:
207
知识点 定义任务函数:function task(){.......} 启动定时器: timer=setTimeout(task,wait);//任务函数,等待时间 停止定时器: 停止等待 clearTimeout(timer); 原理: 1. 启动定时器时: js引擎将定时器的任务函数和间隔时间, ...
分类:
其他好文 时间:
2016-06-22 01:35:54
阅读次数:
143
热修复和热更新 1 热更新和热修复:在线修复程序的 BUG 2 JSPach 的使用原理: OC 是一门动态运行时的语言,方法的运行和对象的创建是在运行时中创建的.JSPatch 正的用运行时,通过JavaScriptCore.framework作为 JS引擎,从 JS 动态调用方法和对象到OC 中 ...
分类:
其他好文 时间:
2016-06-21 06:29:55
阅读次数:
187