localStorage ------数据永远存在,除非调用localStorage.clear()
sessionStorage ------用户关闭选项卡后就会删除存储
colorChange 方法是静态方法,静态方法仅再创建它们的构造函数中存在,并且不能传递给任何子级,题目中的freddie 是一个子级对象,函数不会传递,故再freddie实例上不存在freddie方法,抛出异常 TypeError。
传参方式:使用了标记的模板字符串,则第一个参数的值始终是字符串值的数组,其余的参数获取传递到模板字符串中的表达式的值。
event.target 是获取事件目标,是最深嵌套元素的事件目标,通过event.stopPropagation停止冒泡。
易错点:push() 返回的是新数组的长度,若是想返回数组,则最终应该return list
Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,上述情况返回了一个二维数组
[['name','Lydia'],['age',21]]
for...of迭代数组中的元素,const [x,y] 在 for...of 循环中解构子数组
x------>数组中的第一个元素
y------>数组中的第二个元素
1. 调用funcOne() ,进入到该函数的第一行,调用myPromise异步操作,当JS引擎都在忙于执行promise时,继续执行函数的第二行setTimeout(),又是异步操作,继续往下先执行log函数,输入第一个'Last line!'
2. 当我们执行完funcOne的最后一行后,promise的状态变成resolved,输入'Promise!'
3. 但由于我们调用了funcTwo() ,调用栈不为空,setTimeout的回调仍然不能入栈
4. 现在来到了funcTwo() 函数体内部,先 await myPromise,通过await关键字,暂停了函数的执行直到promise 状态变为resolved(或rejected),继续输出log 函数的内容,即输出'Promise!'
5. 接着执行搭配funcTwo() 函数的setTimeout() 函数,异步操作,继续往下执行,执行输出‘Last Line!’
6. 此时调用栈为空,执行事件队列中等待的回调函数,funcOne 的 setTimeout 和 funcTwo 的 setTimeout 入栈,先进后出原则打印 'Timeout!'