JavaScript 系列
slogeor opened this issue · 2 comments
slogeor commented
记录 JavaScript 相关的知识点
slogeor commented
new Promise(function (resolve) {
console.log('1');
resolve();
}).then(function () {
console.log('2')
})
const p = Promise.resolve();
setTimeout(() => {
console.log('3');
}, 0);
(async () => {
await p;
console.log('4');
})();
p.then(() => console.log('5'))
.then(() => console.log('6'));
考察知识点
宏任务、微任务、事件循环
结果
1 2 4 5 6 3
slogeor commented
Array.prototype.slice.call
- 功能:能将具有
length
属性的对象转成数组 - 知识点拆解:slice、call
slice
arr.slice([begin[, end]])
slice()
方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变
call
fun.call(thisArg, arg1, arg2, ...)
call()
方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数
apply
func.apply(thisArg, [argsArray])
apply()
方法调用一个具有给定 this 值的函数,以及作为一个数组(或类似数组对象)提供的参数
var arguments = {
// length 属性最重要
length: 3,
0: 'JavaScript',
1: 'HTML',
2: 'CSS',
};
var arguments1 = {
0: 'JavaScript',
1: 'HTML',
2: 'CSS',
};
Array.prototype.slice.call(arguments);
// [ 'JavaScript', 'HTML', 'CSS' ]
Array.prototype.slice.call(arguments, 1);
// [ 'HTML', 'CSS' ]
Array.prototype.slice.call(arguments1);
// []