JavaScript
31.6K subscribers
1.17K photos
10 videos
33 files
842 links
A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!

Let's chat: @nairihar
Download Telegram
CHALLENGE

const handler = {
get(target, prop, receiver) {
if (prop in target) {
const value = Reflect.get(target, prop, receiver);
return typeof value === "number" ? value * 2 : value;
}
return `Property "${prop}" not found`;
},
set(target, prop, value) {
if (typeof value !== "number") {
throw new TypeError("Only numbers allowed");
}
Reflect.set(target, prop, value ** 2);
return true;
},
has(target, prop) {
return prop.startsWith("_") ? false : prop in target;
},
};

const store = new Proxy({ _secret: 99, score: 5 }, handler);

store.level = 3;

console.log(store.score);
console.log(store.level);
console.log("_secret" in store);
console.log("score" in store);
console.log(store._secret);
🔥1
CHALLENGE


class Range {
constructor(start, end, step = 1) {
this.start = start;
this.end = end;
this.step = step;
}

[Symbol.iterator]() {
let current = this.start;
const { end, step } = this;
return {
next() {
if (current <= end) {
const value = current;
current += step;
return { value, done: false };
}
return { value: undefined, done: true };
}
};
}
}

const range = new Range(1, 10, 3);
const result = [...range].map(n => n ** 2);
console.log(result);
3
CHALLENGE


const p1 = new Promise((resolve) => {
console.log("A");
resolve("B");
});

const p2 = p1.then((val) => {
console.log(val);
return "C";
});

p2.then((val) => console.log(val));

console.log("D");
What is the output?
Anonymous Quiz
28%
D A B C
34%
A B D C
25%
A D B C
12%
A B C D
3🤔1