JavaScript test
10.2K subscribers
3.05K photos
6 videos
4.42K links
Проверка своих знаний по языку JavaScript.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/js_test

РКН: clck.ru/3KHeYk
Download Telegram
Деструктуризация объекта

Мы можем извлечь свойства объекта с помощью деструктуризации.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const a = [1, 2, 3, 4];
console.log(a + "");


Ответ: 1, 2, 3, 4

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const a = document.createElement("a");
a.id = "test1";
a.href = "test2";
document.body.appendChild(a);
console.log(window.test1);


Ответ: http://.../test2

JavaScript test | ChatGPT | #JavaScript
Объекты как аргументы функций

Мы можем передавать объекты как аргументы функций для удобной работы с данными.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'b', { value: 3, writable: false });

obj.b = 4;
console.log(obj.b);


Ответ: 3

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const base = { x: 1 };
const obj = Object.freeze(base);

base.y = 2;
console.log(base.y);


Ответ: undefined

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const a = { value: 1 };
const b = Object.create(a);
b.value = 2;

console.log(b.value);
console.log(a.value);


Ответ: 2, 1

JavaScript test | ChatGPT | #JavaScript
Проверка наличия свойства

Оператор in позволяет проверить наличие определенного свойства в объекте перед его использованием.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

function a() {
console.log(arguments[0]);
}

a([1]);


Ответ: [1]

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let count = 0;

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

count = 10;
counter();
console.log(count);

Ответ: 11

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let obj1 = { x: 1, y: { z: 2 }};
let obj2 = { ...obj1 };
obj2.x = 2;
obj2.y.z = 3;

console.log(obj1.x, obj1.y.z);

Ответ: 1, 3

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

console.log(typeof Object);
console.log(typeof Object());

Ответ: function, object

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const EventEmitter = require("events");

const emitter = new EventEmitter();
emitter.once("test", v => console.log(v));
emitter.on("test", v => console.log(v));

for (let i = 0; i < 3; i++) {
emitter.emit("test", i);
}

Ответ: 0, 0, 1, 2

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const arr = new Array(3);

for (const i in arr) {
console.log(i);
}

Ответ: No output

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const arr = Array.from({ length: 3 }, (_, i) => i * 2);

for (const i of arr) {
console.log(i);
}

Ответ: 0, 2, 4

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const target = {
age: 30
};

const handler = {
get: function(obj, prop) {
return obj[prop]++;
}
};

const proxy = new Proxy(target, handler);

console.log(proxy.age);
console.log(target.age);
console.log(proxy.age);

Ответ: 30, 31, 31

JavaScript test | ChatGPT | #JavaScript
Итерация по свойствам объекта

Данный цикл позволяет перебрать все свойства объекта person и вывести их ключи и значения.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

let obj1 = { key: 'value1' };
let obj2 = { key: 'value2' };

const weakMap = new WeakMap();
weakMap.set(obj1, 'data1');
weakMap.set(obj2, 'data2');

obj1 = null;
setTimeout(() => {
console.log(weakMap.has(obj1));
console.log(weakMap.has(obj2));
}, 100);

Ответ: false, true

JavaScript test | ChatGPT | #JavaScript
Объекты как аргументы функций

Объект person передается в функцию printInfo, где выводится информация о человеке.

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

var a = 1;
function b() {
a = 10;
return;
function a () {}
}
b();
console.log(a);

Ответ: 1

JavaScript test | ChatGPT | #JavaScript
Что будет на выходе?

const target = {
secret: "hidden",
reveal: "nothing"
};

const handler = {
get: function(obj, prop, receiver) {
if (prop === "secret") {
return "revealed";
}
return Reflect.get(...arguments);
}
};

const proxy = new Proxy(target, handler);

with (proxy) {
console.log(secret);
console.log(reveal);
}

Ответ: revealed nothing

JavaScript test | ChatGPT | #JavaScript