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)均可以算做异步操做