Behzod | IT blog
1 subscriber
21 photos
2 videos
28 links
Software Engineer at @realsoftuz

⚡️Veb dasturchilar uchun amaliy ma'lumotlar
⚡️Eng ko'p so'raladigan intervyu savollari va javoblari

Shaxsiy blog: @behzodjonBlog

Boshqa sahifalar: solo.to/behzodjon
Download Telegram
Channel created
#interview #js
Funksiya bor, elementlarni nusxalab qaytaradaigan funksiya yaratish kerak?

duplicate([1, 2, 3]) //[1, 2, 3,1, 2, 3,]

Yechim:

const duplicate = args =>  [...args, ...args];

Bu yerda array spread operatoridan foydalanildi
#interview #js

Quyidagi kod qanday natija chiqaradi?

let b = {};
let c;
b.b = 1;
c = b;
c.b = 2;
console.log(b.b);
console.log(c.b);
Behzod | IT blog
#interview #js Quyidagi kod qanday natija chiqaradi? let b = {}; let c; b.b = 1; c = b; c.b = 2; console.log(b.b); console.log(c.b);
Javob:

let b = {};       // b nomli yangi bo'sh obyekt yaratadi 
let c; // undefined qiymati bilan yangi o'zgaruvchi yaratadi
b.b = 1; // b obyektning b propertysiga 1 qo'yadi
c = b; // c ga b ni tenglaydi, lekin ikkala o'zgaruvchi ham bitta obyektga ulanadi
c.b = 2; // natiajada ikklasida ham bir xil qiymat paydo bo'ladi chunki bitta obyekt
console.log(b.b); // 2
console.log(c.b); // 2
#interview #js

Quyidagi kod qanday natija chiqaradi?

var a = { name: 'Vasya' };
var b = { name: 'Vasya' };
console.log(a === b);
#interview #js

Quyidagi kod qanday natija chiqaradi?

function f1(a, b) {
console.log(a, b);
}

let f2 = f1.bind(null, 'foo');

f2('bar', 'baz');
Behzod | IT blog
#interview #js Quyidagi kod qanday natija chiqaradi? function f1(a, b) { console.log(a, b); } let f2 = f1.bind(null, 'foo'); f2('bar', 'baz');
Javob:
//foo, bar

Chunki bind() orqali f2 nomli yangi funksiya yaratiladi, 'foo' yuqori darajaga ega bo'ladi, bar biz esa 2,3- argument sifatida ketadi
#interview #js

Quyidagi kod qanday natija chiqaradi?

let name='rabbit'

function go(){
let name="Forest"
console.log(name)
}
name='Alice';
go()
#interview #js

Quyidagi funksiyani yarating?

add(2, 5); // Output: 7
add(2)(5); // Output: 7

Javob:

const add = (a, b) => {
if (b !== undefined) return a + b;
return c => a + c;
};
2-yechim:

function sum(a) {
return function (b) {
return a + b; // takes "a" from the outer lexical environment
};
}



Yanada qiyinrog'i:

console.log(sum(1)(2).toString()); // 3
console.log(sum(1)(2)(3).toString()); // 6
console.log(sum(5)(-1)(2).toString()); // 6
console.log(sum(6)(-1)(-2)(-3).toString()); // 0
console.log(sum(0)(1)(2)(3)(4)(5).toString()); // 15


function sum(a) {
let currentSum = a;

function nextSum(b) {
currentSum += b;
return nextSum;
}

nextSum.toString = function() {
return currentSum;
};

return nextSum;
}



function sum(a) {
if (arguments.length == 2) {
return arguments[0] + arguments[1];
} else {
return function (b) {
return a + b;
};
}
}

console.log(sum(2, 3)); // Outputs 5sds
console.log(sum(2)(3)); // Outputs 5
#interview #js

Kengaytmani topadigan kod yozing.
Masalan: getExtension("ferrf.ferf.fe.exe") // exe

Javob:

const getExtension = (fileName)=>{
if(typof filename !== 'string')
{
throw new Error('Invalid type')
}

const parts = filename.split(' .')
return parts.length == 1 ? null :parts[parts.length-1]
}
#interview #js
Quyidagi divlar jamlanmasining eng quyi chuqurligini toping?
<div id="app">
<div>
<div>
<div></div>
</div>
</div>
<div>
<div>
<div>
<div></div>
</div>
</div>
</div>
</div>



Javob:
const app = document.querySelector('#app');

const treeDepth = (divel, currentLevel) => {
if (divel.children.length === 0) return currentLevel;
currentLevel += 1;
let maxDepth = currentLevel;
Array.from(divel.children).forEach(element => {
maxDepth = Math.max(treeDepth(element, currentLevel), maxDepth);
});
return maxDepth
};
console.log(treeDepth(app, 0));
#interview #js

1. Nuxt js va Vue js farqi
2. SSR nima
3. Child componentdan Parentga
4. Vue js lifecycle hooklar sanang
#interview #js


function reduce(arr, callback, initVal) {
let acc = initVal === 'undefined' ? 'undefined' : 0;
for (let i = 0; i < arr.length; i++) {
if (acc !== 'undefined') {
acc = callback(acc, arr[i], i, arr);
} else {
acc = arr[i];
}
}
return acc
}
const numbers=[1,2,3]
console.log(reduce(numbers,function(acc,val){
return acc+val
},0))
function map(arr, callback) {
const newArr = [];
for (let i = 0; i < arr.length; i++) {
const result = callback(arr[i], i, arr);
newArr.push(result);
}
return newArr;
}