js判断两个对象是否相同
事件循环(EventLoop)

事件循环(EventLoop)

JavaScript是单线程语言,JavaScript中的任务分为同步任务(sync task)和异步任务(async task)。遇到执行函数会将其放入调用栈(先进后出)中,遇到setTimeout/setInterval等异步任务时,会把它放入到消息队列中,等主线程的任务执行完成以后,再回过头执行消息队列中的异步任务,如果异步任务中仍然有异步任务,会继续放入消息队列,以此类推,便形成了一个事件循环。

同步任务:在主线程上排队。
异步任务:在任务队列中排队,等待通知进入主线程执行。

阅读更多
变量提升(hoisting)

变量提升(hoisting)

varfunction 的声明毫无疑问是会被提升到其所在的全局作用域顶部或者函数作用域顶部的。
故而,对于 varfunction 可以先使用后声明。

但是对于 letconst ,各种文章教程都说不会被js提升。
但是我从暂时性死区(TDZ)中发现其实他们俩也是存在变量提升的,只是他们被提升的时候不会在js内部被初始化。

阅读更多
import和export
ES6学习笔记——字符串的扩展