JS面试题

152 阅读1分钟

1、宏任务微任务

console.log('start');
new Promise((res)=> {
    console.log('new Promise');
    res(123);
}).then((a)=> {
    console.log(a);
    resove();
}).catch(()=> {
    console.log('catch')
})
let timer = setTimeout(()=> {
    console.log('1000')
},1000);
clearTimeout(timer);

image.png

2、隐式转换

function a() {
    for(var i=0;i<7;i++){}
    console.log(i + '0', typeof i + '0');
}

image.png

3、解构赋值 blog.csdn.net/wuxeek/arti…

4、全局变量

全局对象是最顶层的对象,在浏览器环境是 window 对象,在 Node.js 中是 global 对象,ES5 中全局对象的属性与全局变量是等价的,这被视为 JavaScript 语言的一大问题,因为很容易就不知不觉创建了一个全局变量。ES6 改变了这一点,通过varfunction声明的全局变量依旧是全局对象的属性,而letconstclass声明的变量不属于全局对象的属性。

var a = 1;
window.a;//1

let b = 2;
window.b;//undefined