Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
CHALLENGE
async function* gen() {
const x = yield 1;
const y = yield x + 1;
return x + y;
}
async function main() {
const it = gen();
const a = await it.next();
const b = await it.next(10);
const c = await it.next(20);
console.log(`${a.value} ${b.value} ${c.value} ${c.done}`);
}
main();👍4🔥1
What is the output?
Anonymous Quiz
25%
1 11 30 true
35%
1 11 31 true
32%
undefined 11 30 true
8%
1 10 30 true
CHALLENGE
const sym1 = Symbol('id');
const sym2 = Symbol('id');
const obj = {
[sym1]: 'first',
[sym2]: 'second',
regular: 'value'
};
const s = Symbol.for('shared');
const s2 = Symbol.for('shared');
console.log(
sym1 === sym2,
Object.keys(obj).length,
Reflect.ownKeys(obj).length,
s === s2,
sym1.toString()
);❤1
What is the output?
Anonymous Quiz
29%
false 1 3 false Symbol(id)
42%
true 1 3 true Symbol(id)
23%
false 1 3 true Symbol(id)
7%
false 3 3 true Symbol(id)
🔥3❤2👍1
CHALLENGE
function tag(strings, ...values) {
return strings.raw.join('|') + '::' + values.join(',');
}
const a = 5, b = 10;
console.log(tag`Sum:\n${a + b} End`);👍2❤1
What is the output?
Anonymous Quiz
30%
Sum:\n| End::5,10
37%
Sum:\n End::15
23%
Sum:\n| End::15
9%
Sum: End::15
CHALLENGE
const a = -7 % 3;
const b = 7 % -3;
const c = 2 ** 3 ** 2;
const d = (2 ** 3) ** 2;
const e = 0.1 + 0.2;
console.log(a, b, c, d, e);
🔥2
What is the output?
Anonymous Quiz
15%
-1 1 512 64 0.3
49%
-1 1 512 64 0.30000000000000004
26%
-1 1 64 512 0.30000000000000004
10%
1 -1 512 64 0.30000000000000004
👍1
CHALLENGE
async function main() {
const settled = await Promise.allSettled([
Promise.resolve(1),
Promise.reject('err'),
]);
const statuses = settled.map(s => s.status).join(',');
let anyResult;
try {
await Promise.any([Promise.reject('a'), Promise.reject('b')]);
} catch (err) {
anyResult = `${err.name}:${err.errors.join(',')}`;
}
console.log(statuses, anyResult);
}
main();❤2
CHALLENGE
const output = [];
output.push(typeof foo);
try {
output.push(typeof bar);
} catch (e) {
output.push(e.message);
}
var foo = () => 'foo';
let bar = () => 'bar';
console.log(output.join(' | '));
🤔1
CHALLENGE
const arr = [1, [2, 3], [4, [5, 6]]];
const a = arr.flat();
const b = arr.flat(Infinity);
const c = arr.flatMap(x => Array.isArray(x) ? x : [x, x]);
console.log(a, b, c);
❤3
What is the output?
Anonymous Quiz
21%
[ 1, 2, 3, 4, [ 5, 6 ] ] [ 1, 2, 3, 4, 5, 6 ] [ [1,1], [2,3], [4,[5,6]] ]
39%
[ 1, 2, 3, 4, [ 5, 6 ] ] [ 1, 2, 3, 4, 5, 6 ] [ 1, 1, 2, 3, 4, [ 5, 6 ] ]
24%
[ 1, 2, 3, 4, [ 5, 6 ] ] [ 1, 2, 3, 4, 5, 6 ] [ 1, 2, 3, 4, [ 5, 6 ] ]
17%
[ 1, 2, 3, 4, 5, 6 ] [ 1, 2, 3, 4, 5, 6 ] [ 1, 1, 2, 3, 4, [ 5, 6 ] ]
🔥2❤1
CHALLENGE
function* inner() {
const x = yield 1;
yield x + 1;
return 100;
}
function* outer() {
const result = yield* inner();
yield result;
}
const g = outer();
console.log(g.next().value, g.next(10).value, g.next().value, g.next().value);❤1👍1
What is the output?
Anonymous Quiz
21%
1 11 undefined 100
57%
1 11 100 undefined
14%
1 11 100 100
8%
1 10 100 undefined
❤2🔥2🤔1
CHALLENGE
const obj = {
value: 42,
getValue: function() {
return this.value;
}
};
const unboundGetValue = obj.getValue;
const boundGetValue = unboundGetValue.bind(obj);
const boundTwice = boundGetValue.bind({ value: 100 });
console.log(
boundGetValue(),
boundTwice(),
unboundGetValue.call({ value: 7 }),
obj.getValue.apply({ value: 99 })
);🤩1
What is the output?
Anonymous Quiz
30%
42 42 7 99
41%
42 100 7 99
17%
42 42 42 42
12%
undefined 42 7 99
❤5