CHALLENGE
const target = { a: 1, b: 2 };
const handler = {
get(obj, prop) {
return prop === 'sum' ? obj.a + obj.b : Reflect.get(obj, prop);
},
set(obj, prop, value) {
if (prop === 'a' && value < 0) {
return false;
}
return Reflect.set(obj, prop, value);
}
};
const proxy = new Proxy(target, handler);
proxy.a = -5;
proxy.b = 10;
console.log(`${proxy.a}, ${proxy.b}, ${proxy.sum}`);
π4π₯1
What is the output?
Anonymous Quiz
31%
-5, 10, 5
34%
undefined, 10, NaN
20%
-5, 10, NaN
15%
1, 10, 11
π8β€2π₯1π€1π€©1
Last year the popular GSAP (a.k.a. GreenSock) animation library was acquired by Webflow and as of this new version the entire GSAP toolkit is freely available (including formerly paid addons like MorphSVG and SplitText) even for commercial use. If you're unfamiliar with GSAP and want to see some of what it can do, they have a showcase, lots of code demos, and amazing docs.
Cassie Evans and Jack Doyle
Please open Telegram to view this post
VIEW IN TELEGRAM
π₯7β€2π2
CHALLENGE
const obj = {
value: 10,
getValue() {
return this.value;
},
getArrowValue: () => {
return this.value;
},
getMixedValue() {
const regular = function() { return this.value; };
const arrow = () => this.value;
return [regular(), arrow()];
}
};
console.log(obj.getMixedValue());
π1
What is the output?
Anonymous Quiz
20%
[undefined, undefined]
32%
[10, undefined]
27%
[undefined, 10]
21%
[10, 10]
π€10π6
Google Apps Script is a JavaScript-based platform for dynamically automating tasks in all sorts of Google apps. Hereβs how to use it to bring Google Analytics data into a Google Sheet.
Kayce Basques
Please open Telegram to view this post
VIEW IN TELEGRAM
π4β€1π₯1
CHALLENGE
const obj = {
value: 42,
getValue() {
return this.value;
},
getArrowValue: () => {
return this.value;
},
getDelayedValue() {
setTimeout(function() {
console.log(this.value);
}, 0);
},
getFixedDelayedValue() {
setTimeout(() => {
console.log(this.value);
}, 0);
}
};
obj.getDelayedValue();
β€3
What is the output?
Anonymous Quiz
19%
TypeError: Cannot read property 'value' of undefined
43%
42
33%
undefined
5%
null
π9β€2π₯2
A full-featured PDF viewer for React, Solid, Svelte and vanilla JS apps. Built on top of PDF.js, it offers a wide array of features from simple PDF viewing to working with multiple and large documents with annotations. Demo. v3.0 bumps up to PDF.js v5 with ICC profile support, better JPEG 2000 support, and improved rendering of large pages.
Vancho Stojkov
Please open Telegram to view this post
VIEW IN TELEGRAM
π4π₯2β€1π€©1
CHALLENGE
const target = { name: 'Alice' };
const handler = {
get(obj, prop) {
return prop in obj ? obj[prop].toUpperCase() : 'NOT_FOUND';
},
set(obj, prop, value) {
if (typeof value !== 'string') {
return false;
}
obj[prop] = value.trim();
return true;
}
};
const proxy = new Proxy(target, handler);
proxy.name = ' Bob ';
proxy.age = 30;
console.log(`${proxy.name}-${proxy.age}-${proxy.job}`);
π9
What is the output?
Anonymous Quiz
16%
BOB -30-NOT_FOUND
31%
Bob-30-undefined
36%
BOB-NOT_FOUND-NOT_FOUND
16%
BOB-30-NOT_FOUND
β€3π€1
CHALLENGE
const inventory = {
items: ['apple', 'banana', 'orange'],
[Symbol.iterator]: function() {
let index = 0;
const items = this.items;
return {
next: function() {
return index < items.length ?
{ value: items[index++].toUpperCase(), done: false } :
{ done: true };
}
};
}
};
const result = [...inventory].join(' + ');
console.log(result);
β€4π4π₯1
What is the output?
Anonymous Quiz
19%
apple,banana,orange
21%
apple + banana + orange
53%
APPLE + BANANA + ORANGE
7%
[object Object]
π5β€2π₯1π€©1
CHALLENGE
const obj = {};
const sym1 = Symbol('description');
const sym2 = Symbol('description');
obj[sym1] = 'Value 1';
obj[sym2] = 'Value 2';
obj.regularProp = 'Regular';
const allKeys = Object.getOwnPropertySymbols(obj).length + Object.keys(obj).length;
const comparison = sym1 === sym2;
console.log(allKeys + ',' + comparison);
β€3π3π₯1
β€4π4π₯3
CHALLENGE
const team = {
members: ['Alice', 'Bob', 'Charlie'],
leader: 'Diana',
[Symbol.iterator]: function*() {
yield this.leader;
for(const member of this.members) {
yield member;
}
}
};
let names = [];
for (const person of team) {
names.push(person);
}
console.log(names.join(', '));
β€6π2
What is the output?
Anonymous Quiz
28%
Alice, Bob, Charlie, Diana
41%
Diana, Alice, Bob, Charlie
22%
Diana, Alice, Bob, Charlie, undefined
9%
Alice, Bob, Charlie
π7π€©3β€1
CHALLENGE
function processData(data) {
try {
if (!data) {
throw new TypeError('Data is required');
}
if (data.status === 'error') {
throw new Error('Invalid status');
}
return data.value.toUpperCase();
} catch (err) {
if (err instanceof TypeError) {
return 'Type Error';
}
return err.message;
}
}
console.log(processData({ status: 'error', value: 'test' }));
β€4
What is the output?
Anonymous Quiz
18%
Type Error
52%
Invalid status
19%
TYPE ERROR
10%
TypeError: Cannot read property 'toUpperCase' of undefined
π3π₯3β€2π€£1