前端面试-----JavaScript异步和单线程
2018-02-24 15:47
288 查看
JavaScript是单线程语言,但是ajax,事件监听是异步的,那么异步是怎么实现的呢(同步会阻塞代码的运行,而异步不会)
执行第一行,打印100
执行setTimeout后,传入setTimeout的函数会被暂存起来,不会立即执行(单线程的特点,不能同时干两件事)由于定时了1秒,这个函数会被封闭起来,在一秒后解封
执行最后一行,打印300
带程序执行完毕之后,会立马看没有储存起来的要执行的
发现暂存起来的setTimeout中的函数时间到了,就立即来过来执行
2.网络请求:ajax请求,动态<img>加载
3.事件绑定
同步与异步
执行第一行,打印100
执行setTimeout后,传入setTimeout的函数会被暂存起来,不会立即执行(单线程的特点,不能同时干两件事)由于定时了1秒,这个函数会被封闭起来,在一秒后解封
执行最后一行,打印300
带程序执行完毕之后,会立马看没有储存起来的要执行的
发现暂存起来的setTimeout中的函数时间到了,就立即来过来执行
前端使用异步的场景
1定时任务:setTimeout, setInverval2.网络请求:ajax请求,动态<img>加载
3.事件绑定
JavaScript执行机制
相关文章推荐
- web前端面试-------javaScript基础知识点之数据类型
- Web前端面试指导(三十二):同步和异步有什么区别?
- 为什么javascript是单线程的却能让AJAX异步调用?
- 面试某公司前端关于javascript中this的总结
- 前端面试题目汇总(一)HTML、CSS、JavaScript
- JavaScript 既是单线程又是异步的,究竟JS线程是什么?
- JavaScript 既是单线程又是异步的,请问这二者是否冲突,以及有什么区别?
- 单线程 JavaScript 的异步机制与经典 for 循环面试题
- 转:web前端面试题合集 (Javascript相关)(js异步加载详解)
- web前端面试,包括javascript,css
- 前端面试-----JavaScript中变量类型与计算
- 前端面试系列之---javascript基础和数据类型
- JavaScript是如何做到单线程异步的
- JavaScript 既是单线程又是异步的,请问这二者是否冲突,以及有什么区别?
- 前端面试之---javascript原型
- 前端面试必问的问题:java 与javascript的区别
- 前端面试系列之---异步 单线程
- 创建JavaScript对象的方法(前端面试)
- 前端面试-----JavaScript中原型链与原型
- 前端面试-----JavaScript内置函数