持续更新中...webpack
面试传送门:web
异步解决方案面试
答:
1.返回一个失败的promise。
2.抛出一个错误(throw new Error())c#
答:返回一个处于pending(等待态)状态的promise数组
答:promise
答:浏览器
答:bash
深拷贝实现的一种方式:JSON.parse(JSON.strinfy(obj));闭包
ES6 新增内容总结app
function deepClone(source) {
const targetObj = source.constructor === Array ? [] : {}; // 判断复制的目标是数组仍是对象
for (let keys in source) { // 遍历目标
if (source.hasOwnProperty(keys)) {
if (source[keys] && typeof source[keys] === 'object') { // 若是值是对象,就递归一下
targetObj[keys] = source[keys].constructor === Array ? [] : {};
targetObj[keys] = deepClone(source[keys]);
} else { // 若是不是,就直接赋值
targetObj[keys] = source[keys];
}
}
}
return targetObj;
}
var str1 = {
arr: [1, 2, 3],
obj: {
key: 'value'
},
fn: function () {
return 1;
}
};
var str3 = deepClone(str1);
console.log(str3 === str1); // false
console.log(str3.obj === str1.obj); // false
console.log(str3.fn === str1.fn); // true
复制代码
答:
//-----------------------------------------并集
// let arr1 = [1, 2, 3, 4]
// let arr2 = [3, 4, 5, 6]
//并集
// function union(arr1, arr2) {
// // let s1 = new Set(arr1)
// // let s2 = new Set(arr2)
// // let s = new Set([...s1,...s2])
// // return [...s]
// let s = new Set([...arr1,...arr2])
// return [...s]
// }
// console.log(union(arr1,arr2)); //[ 1, 2, 3, 4, 5, 6 ]
//-----------------------------------------交集
// let arr1 = [1, 2, 3, 4]
// let arr2 = [3, 4, 5, 6]
// //交集
// function intersection(arr1,arr2){
// let s1 = new Set(arr1)
// let s2 = new Set(arr2)
// return [...s1].filter(item=>{
// return s2.has(item)
// })
// }
// console.log(intersection(arr1,arr2)) //[ 3, 4 ]
//-----------------------------------------差集
// let arr1 = [1, 2, 3, 4]
// let arr2 = [3, 4, 5, 6]
// function difference(arr1,arr2){
// let s1 = new Set(arr1)
// let s2 = new Set(arr2)
// return [...s1].filter(item=>{
// return !s2.has(item)
// })
// }
// console.log(difference(arr1,arr2)) //[ 1, 2 ]
复制代码
ES6 的模块化分为导出(export) @与导入(import)两个模块。
as 的用法
1.建立对象
2.绑定this 3.连接到原型
4.返回对象
JS中 new究竟作了什么?
谁调用了包含this的方法,那么this就指向谁
JS中的 this 到底指向谁?
改变this,能够用call、apply、bind,他们之间的区别?
JS中改变this的指向 call、apply 和 bind 的区别
简单地说,TS就是增长了重要的类型检测机制,添加了不少类型,能够用来写大型项目。
布尔值、数字、字符串、数组、元组、枚举、any、void、null、undefined、never、object、类型断言
JavaScript中有6种数据类型:数字(number)、字符串(string)、布尔值(boolean)、undefined、null、对象(Object)。
其中对象类型包括:数组(Array)、函数(Function)、还有两个特殊的对象:正则(RegExp)和日期(Date)。