持續更新中...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)。