Something

157 阅读1分钟

模块化

ESM/CommonJs/AMD/UMD

js

sort

默认没有函数 按照 UTF-16 排序,对于字母数字按 ASCII 排序

防抖&节流

call、apply & bind

http & 网络

从输入URL到页面加载发生了什么?

异步

setTimeout、Promise、Async/Await

代码输出

浏览器的Tasks、microtasks、 queues 和 schedules

// 1. 执行主任务完成后
// 2. 轮询任务队列

async function async1() {
    // 2. async1 start
    console.log('async1 start')
    await async2()
    // 6. async1 end
    console.log('async1 end')
}
async function async2() {
    // 3. async2
    console.log('async2')
}

// 1.script start
console.log('script start')

// 8. settimeout
setTimeout(function () {
    console.log('settimeout')
})
async1()
new Promise(function (resolve) {
    // 4. promise1
    console.log('promise1')
    resolve()
}).then(function () {
// 7. promise2
    console.log('promise2')
})

// 5. 
console.log('script end')

作用域问题

var a = 10;
(function () {
    console.log(a)
    a = 5
    console.log(window.a)
    var a = 20;
    console.log(a)
})()



改写后::

var a = 10;
(function () {
    var a
    console.log(a)
    a = 5
    console.log(window.a)
    a = 20;
    console.log(a)
})()

2

var a = {n:1};
a.x = a ={n:2};
console.log(a.x);

阅读文章

https://muyiy.cn/question/js/41.html