#interview #js
Funksiya bor, elementlarni nusxalab qaytaradaigan funksiya yaratish kerak?
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?
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?
Quyidagi kod qanday natija chiqaradi?
var a = { name: 'Vasya' };
var b = { name: 'Vasya' };
console.log(a === b);
Behzod | IT blog
#interview #js Quyidagi kod qanday natija chiqaradi? var a = { name: 'Vasya' }; var b = { name: 'Vasya' }; console.log(a === b);
Javob: false
Chunki bu 2 xil obyekt hisoblanadi, bu primitiv tip emas
Chunki bu 2 xil obyekt hisoblanadi, bu primitiv tip emas
#interview #js
Quyidagi kod qanday natija chiqaradi?
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, barChunki 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?
Quyidagi kod qanday natija chiqaradi?
let name='rabbit'
function go(){
let name="Forest"
console.log(name)
}
name='Alice';
go()
Behzod | IT blog
#interview #js Quyidagi kod qanday natija chiqaradi? let name='rabbit' function go(){ let name="Forest" console.log(name) } name='Alice'; go()
Javob:
// Forest
Global o'zgaruvchi ta'sir qilmaydi , lokal o'zgaruvchi ishlaydi funksiya ichida#interview #js
Skriptlarni sahifaga ulash (async, defer)
https://telegra.ph/Skriptlarni-sahifaga-ulash-async-defer-02-26
Skriptlarni sahifaga ulash (async, defer)
https://telegra.ph/Skriptlarni-sahifaga-ulash-async-defer-02-26
Telegraph
Skriptlarni sahifaga ulash (async, defer)
Zamonaviy vebsaytlarda skriptlar ko'pincha og'irroq bo'ladi HTML ga qaraganda, ularning yuklash hajmi kattaroq, va anchagina vaqt oladi. Qachonki brauzer HTMLni yuklashni boshlasa va <script>...</script> tegiga duch kelsa, brauzer darhol HTML DOM ni yuklashni…
#interview #js
Quyidagi funksiyani yarating?
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:
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?
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
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);
}