js单线程js任务队列异步操作

Posted develop-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js单线程js任务队列异步操作相关的知识,希望对你有一定的参考价值。

2017.9.22【面试阶段】
一:js由来
     javascript 1995年首次设计在浏览器上,领导者为了让他看起来更像java,所以起名JavaScript;
     js是兼容ECMA标准,也称为ECMAScript;js是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言;
     他的解释器称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早用在html上,添加动态功能
 
二:单线程是js的一大特性
     不像其他语言如java一样多线程,不用考虑线程同步的问题;
     js是用户与浏览器进行交互、进行DOM操作的,使得它必须是单线程,(比如你去修改一个元素的DOM,同时又去删除这个元素,
     浏览器听谁的)
 
三:js任务有两种
     同步任务:各个任务按照文档定义的顺序一一推入“执行栈”中,当前一个任务执行完毕,才会开始执行下一个任务
     异步任务:各个任务推入“任务队列”中,只要在当前的所有同步任务执行完毕,才会将队列中的任务“出队”执行
 
四:任务队列(event loop):你可理解为用于存放事件的队列,当执行一个异步任务时,就相当于执行任务的回调函数
     
五:异步操作
     io(ajax获取服务器数据)、用户/浏览器自执行事件(onclick、onload、onkeyup等等)以及定时器(setTimeout、setInterval)都可以算作异步操作

以上是关于js单线程js任务队列异步操作的主要内容,如果未能解决你的问题,请参考以下文章

一篇搞定(Js异步事件循环与消息队列微任务与宏任务)

一篇搞定(Js异步事件循环与消息队列微任务与宏任务)

js找到控件后再下一步操作

js运行机制 值引用 值传递

谈一谈你对js线程的理解

Node.js编程之异步