Frontend
Երբ է տեղի ունենում React-ում կոմպոնենտի վերաարտադրություն?
// Պետք է իրականացնել groupBy մեթոդը, որը ընդլայնում է զանգվածների ստանդարտ մեթոդները: // Մեթոդը պետք է վերադարձնի զանգվածի խմբավորված տարբերակը՝ օբյեկտ, // որի բանալիները՝ fn(arr[i]) կանչի արդյունքները յուրաքանչյուր տարրին, // իսկ արժեքները՝ զանգվածներ, որոնք պարունակում են բոլոր տարրերը սկզբնական զանգվածից այդ բանալու հետ: // այստեղ կոդը // Օրինակ 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Օրինակ 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String)); // { // "1": [1], // "2": [2], // "3": [3] // } // Օրինակ 3 const array3 = [1.3, 0.5, 1.4]; console.log(array3.groupBy(Math.round)); // { // 1: [0.5, 1.4], // 3: [1.3] // }
/* Գրեք MyRequired տիպը — դարձնում է բոլոր ընտրովի դաշտերը պարտադիր */ type User = { id?: number name?: string } type MyRequired<T> = { } const user1: MyRequired<User> = { id: 1, name: "John" } const user2: MyRequired<User> = { id: 1 }
Ի՞նչ է ավելի լավ օգտագործել երկու վիճակների անցումի համար (վառ/անջատել): toggle կամ checkbox?
Օպտիմիստական թարմացումներ եք օգտագործել: Դրանք արդյոք ցույց տվեցիք օգտվողին տվյալների ֆոնային թարմացման ժամանակ:
Ի՞նչ էր ընկերությունից հեռանալու պատճառը։
Ի՞նչ է OSI մոդելը։ Ի՞նչ են L2, L3, L7-ը։
Ինչու եք հեռացել առաջին ընկերությունից?
Եթե Promise չի լուծվել և մերժվել է, որտեղ կարող ենք բռնել սխալը? Ի՞նչ ավելին կա, բացի then և catch-ից: Երբ է աշխատում finally?
Կարող ես մի փոքր պատմել օդանավակայաններում ուղևորների սպասարկման գործակալների համար վարչական պորտալի գործառույթների մասին?
Երբ է կանչվում useLayoutEffect-ը և ինչպե՞ս է այն տարբերվում useEffect-ից։
Ի՞նչ ճարտարապետություն, վիճակի կառավարիչ և կոմպոնենտների գրադարան ընտրեցին այդ նախագծում և ինչու?
Ի՞նչ են Vue 2 և Vue 3-ի հիմնական տարբերությունները։
Ի՞նչն է տարբերությունը թույլտվության և նույնականացման միջև։
Պատմիր Promise-ի մասին՝ ինչ է դա, վիճակները և ստատիկ մեթոդները (հատկապես տարբերությունը Promise.all և Promise.race միջև):
/** * 'asyncAuth(callback)' ֆունկցիան ընդունում է callback, որի մեջ * կարող է փոխանցվել սխալ (առաջին արգումենտ) և տվյալներ * բեկենդից (երկրորդ արգումենտ): * asyncAuth((error, data) => {}); * * Դուք պետք է իրականացնել 'auth()' ֆունկցիան, * որը կանչում է 'asyncAuth()', բայց վերադարձնում է Promise: * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * 'tryAuth()' ֆունկցիան օգտագործում է 'auth()'-ն և, սխալի դեպքում, * անում N լրացուցիչ փորձեր: * Եթե բոլորն էլ ձախողվեն, վերադարձնում է վերջին սխալը: * * @returns {Promise} */ function tryAuth(n) { return new Promise((resolve, reject) => { function attempt(attemptsLeft) { auth().then(resolve).catch((error) => { if (attemptsLeft <= 0) { reject(error); } else { attempt(attemptsLeft - 1); } }); } attempt(n); }); }
Ի՞նչ եք ուզում աշխատել նոր տեղում, ինչն է ձեզ հետաքրքրում ապագայում։
Պատմեք ձեր փորձի մասին ձեր ռեզյումեից՝ խնդիրներ, տեխնոլոգիաներ, հաջողություններ և ձեռքբերումներ՝ ավելի քան երեքուկես տարվա աշխատանքում Sovcombank-ում։
Պատմեք վերջին թիմի գործընթացների մասին՝ սպրինտներ, կանբան, պլանավորում — ինչպես դա եղել է գործնականում?
Ասա ավելի մանրամասն՝ դաշբորդների մասին. որտեղից էին վերցվում մետրիկաները, ինչ մետրիկաներ եք հավաքել։