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
#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;
}
function customSome(callback) {
for (let i = 0; i < this.length; i++) {
if (callback(this[i], i, this)) {
return true;
}
}
return false;
}

Array.prototype.customSome = customSome;
function filter(array, callback) {
const filteredArray = [];
for (let i = 0; i < array.length; i++) {
if (callback(array[i], i, array)) {
filteredArray.push(array[i]);
}
}
return filteredArray;
}
Quyidagi funksiyani bir necha marta chaqirish orqali, counterni increment qilishni, yo'li self invoked funksiyadan foydalanish


const add = (function () {
let counter = 0;
return function () {counter += 1; return counter}
})();

add();
add();
add();
console.log(add())
for (var i = 1; i <= 10; i++) {
function foo(x) {
setTimeout(() => {
console.log(x);
}, 0);
}
foo(i);
}
function addGlobalEventListener(type, selector, callback, options) {
document.addEventListener(type, e => {
if (e.target.matches(selector)) callback(e)
}, options)
}

addGlobalEventListener("click", ".btn", () => {
console.log("Clicked Button")
}, { once: true })
Nullish operator qattiqroq tekshiradi logical OR(||) operatorga qaraganda

const x = false;
const y = 0;
const z = '';

const a = x || 'default'; // 'default'
const b = y || 'default'; // 'default'
const c = z || 'default'; // 'default'

const d = x ?? 'default'; // false
const e = y ?? 'default'; // 0
const f = z ?? 'default'; // ''
Javascript dasturlash tilida bir nechta funksiya turlari bor.

1.Function declaration. Ushbu tur juda keng foydalaniladi. Function declarationda funksiya "function" kalit so'zi bilan boshlanadi va hohlagan nomingizni yozasiz.

Misol:

function myFunction(param1, param2) {
// Function body
}

2. Function expression.
Bu turdagi funksiyani siz anonim tarzda yaratasiz va biror bir o'zgaruvchiga tenglashtirasiz.

Misol:

const myFunction = function(param1, param2) {
// Function body
};

3. Arrow functionlar. Bu funksiya turi ES6 versiyada kirgizilgan, Bu funksiyalar doim anonimus bo'ladi.

Misol:

const myFunction = (param1, param2) => {
// Function body
};

4. Konstrkuturli funksiyalar. Bu turdagi funksiyalar yangi funksiyali obyekt yaratish uchun ishlatiladi

Misol:
const myFunction = new Function("param1", "param2", "return param1 + param2");
Javascriptda first-class function nima?

First-class function biror bir o'zgaruvchiga tenglashtirilib, boshqa bir funksiya uchun argument sifatida ishlatilinishi mumkin

Misol:
function multiplyByTwo(num) {
return num * 2;
}

function mapArray(arr, fn) {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(fn(arr[i]));
}
return result;
}

const numbers = [1, 2, 3, 4];
const doubledNumbers = mapArray(numbers, multiplyByTwo);
console.log(doubledNumbers); // [2, 4, 6, 8]

Bu misolda multiplyByTwo nomli funksiya yaratdik. Shungdek mapArray funksiyani argumentlari, array, va funksiya qabul qiladigan qilib yaratdik. Va natijada biz multiplyByTwo funksiyasini argument sifatida ishlatishimiz va callback qilib chaqirishimiz mumkin