<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                手撕題1:用html和css寫這個面試界面的結構和樣式 ~~~ // 手撕題2 統計一個復雜對象value中的英文字符a-z以及A-Z的個數 let object = { name:'code', obj : { name: 'CODE', age: [12,45,20], info : { nick: 'haha!' } }, hooby: ['a','B'] } let res = 0; const countLetter = (obj) => { for(let key in obj) { if(obj[key] instanceof Array){ obj[key].forEach(val => { if(val >= 'a' && val <= 'z' || val >= 'A' && val <= 'Z'){ res++; } }); } else if(obj[key] instanceof Object) { countLetter(obj[key]); } else if(typeof obj[key] === 'string') { let arr = obj[key].split(''); arr.forEach(val => { if(val >= 'a' && val <= 'z' || val >= 'A' && val <= 'Z'){ res++; } } ) } } } countLetter(object); console.log(res); ~~~ ## 二面:40min 想看此處的段子可移步前面的動態 * 優化bundle體積怎么優化的 * 是否了解過版本升級是怎么部署的 * Ts的類型和接口有什么區別 ~~~ //問答題1: {} == {} {} === {} // 回答這倆的結果:都是錯的 // 因為,對象使用 = 進行比較的時候是比較兩個對象的引用 // 由于這兩個對象是獨立創建的,無論是全等比較還是內容相等的比較都不成立 // 問答題2 const a = 1; function a() {} // 這樣的代碼執行之后會出現什么情況? // 答案:const a = 1 會報錯,因為函數先進行聲明 // 使用了a作為函數名,之后再聲明常量a瀏覽器會提示重復定義 //手撕1:請你編寫一個異步函數 promisePool //它接收一個異步函數款組functions 和 池限制 n, //它應該返回一個 promise 對象,當所有輸入函數都執行完畢后,promise 對象就執行完畢 function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function promisePool(functions, n) { const results = []; let index = 0; async function executeNext() { const currentIndex = index; index++; if (currentIndex >= functions.length) { return; // 所有函數都已執行完畢 } const currentFunction = functions[currentIndex]; const result = await currentFunction(); results[currentIndex] = result; await delay(0); // 讓事件循環得以執行 // 遞歸執行下一個函數 await executeNext(); } // 開始執行初始函數,不超過并發限制 const initialPromises = []; for (let i = 0; i < Math.min(n, functions.length); i++) { initialPromises.push(executeNext()); } // 等待所有初始 promises 完成 await Promise.all(initialPromises); return results; } // 示例用法 async function asyncFunction1() { await delay(1000); return '函數 1 已完成'; } async function asyncFunction2() { await delay(1500); return '函數 2 已完成'; } async function asyncFunction3() { await delay(500); return '函數 3 已完成'; } const functions = [asyncFunction1, asyncFunction2, asyncFunction3]; const concurrencyLimit = 2; promisePool(functions, concurrencyLimit) .then(results => { console.log('所有函數已執行完畢:', results); }) .catch(error => { console.error('出現錯誤:', error); }); // 手撕2 // 請你編寫一個函數,它接收一個其他的函數,并返回該圖教的 柯里化 后的形式 function curry(fn, ...args) { if (args.length >= fn.length) { return fn(...args); } else { return (...newArgs) => curry(fn, ...args, ...newArgs); } } // 示例函數 function sum(a, b, c) { return a + b + c; } const curriedSum = curry(sum); console.log(curriedSum(1)(2)(3)); // 輸出:6 console.log(curriedSum(1, 2)(3)); // 輸出:6 console.log(curriedSum(1)(2, 3)); // 輸出:6 console.log(curriedSum(1, 2, 3)); // 輸出:6 ~~~ ## 三面:技術終面(50min) * 問的更多是個人情況,技術視野相關的東西 * 比如為什么選前端,最讓你眼前一亮的技術,java和electron有什么區別等等問題,參考價值不大,就不細說了 * 兩個手撕,一個低代碼相關,一個是把vue組件轉化成react組件,也都挺抽象
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看