Channel: JavaScript
Why let Python developers have all the fun? Now you can harness the full power of Googleās Gemini API (and Vertex platform) from Node too. v1.0 landed a few days ago, but today we also get v1.1 which includes CommonJS support. The Gemini docs and examples now use it too (if you select JavaScript).
Please open Telegram to view this post
VIEW IN TELEGRAM
CHALLENGE
const user = {
details: {
name: 'Alex',
contact: null,
preferences: {
theme: 'dark'
}
},
getInfo() {
return this?.details?.contact?.email ||
this?.details?.preferences?.theme ||
this?.details?.name ||
'Unknown';
}
};
console.log(user.getInfo());
A monorepo is like a BMW: it requires constant maintenance and attention. You canāt just set it up once and expect it to work smoothly for the next five years.
nairihar
Please open Telegram to view this post
VIEW IN TELEGRAM
CHALLENGE
function createCounter() {
let count = 0;
return {
increment: () => ++count,
getCount: () => count
};
}
function compose(...fns) {
return (x) => fns.reduceRight((acc, fn) => fn(acc), x);
}
const counter = createCounter();
const double = x => x * 2;
const addOne = x => x + 1;
const incrementAndProcess = compose(double, addOne, counter.increment);
counter.increment();
const result = incrementAndProcess();
console.log(result);
TypeScript 5.5 introduces support for new ECMAScript methods on the Set object: union, intersection, difference, and symmetricDifference. These methods allow for more intuitive and readable operations on sets.
CHALLENGE
const products = [
{ id: 1, name: 'Laptop', price: 1200, category: 'Electronics' },
{ id: 2, name: 'Headphones', price: 100, category: 'Electronics' },
{ id: 3, name: 'Book', price: 15, category: 'Books' },
{ id: 4, name: 'Shirt', price: 25, category: 'Clothing' },
{ id: 5, name: 'Coffee Mug', price: 10, category: 'Kitchen' }
];
const result = products
.filter(p => p.price > 20)
.map(p => ({ name: p.name, value: p.price * 0.9 }))
.reduce((acc, item) => {
acc.names.push(item.name);
acc.total += item.value;
return acc;
}, { names: [], total: 0 });
console.log(result);
CHALLENGE
const person = {
name: 'Alice',
greet() {
return `Hello, I'm ${this.name}`;
},
farewell: () => `Goodbye from ${this.name}`
};
const greetFn = person.greet;
const farewellFn = person.farewell;
console.log(person.greet());
console.log(greetFn());
console.log(farewellFn());
What is the output?
Anonymous Quiz
29%
Hello, I'm Alice TypeError: Cannot read property 'name' of undefined Goodbye from undefined
40%
Hello, I'm Alice Hello, I'm undefined Goodbye from undefined
22%
Hello, I'm Alice Hello, I'm Goodbye from Alice
10%
Hello, I'm Alice Hello, I'm undefined Goodbye from Alice
Matteo Collina notes the Node.js ecosystem is āat a critical junctureā, with v18 and earlier now āEnd-of-Lifeā. He breaks down what that really means for users of legacy versions, and why you should skip Active LTS v20 and leap straight to v22 for maximum future-proofing. If you have to stay on older versions, though, Matteo shares an option to consider.
Matteo Collina
Please open Telegram to view this post
VIEW IN TELEGRAM
CHALLENGE
function task1() {
console.log('A');
setTimeout(() => console.log('B'), 0);
Promise.resolve().then(() => console.log('C'));
Promise.resolve().then(() => setTimeout(() => console.log('D'), 0));
Promise.resolve().then(() => console.log('E'));
setTimeout(() => console.log('F'), 0);
console.log('G');
}
task1();
// What is the order of the console output?
What is the output?
Anonymous Quiz
24%
A G B F C E D
32%
A B G C E F D
23%
A G C E B F D
22%
A G C E B D F
CHALLENGE
function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}
const fib = fibonacci();
const result = [];
for (let i = 0; i < 4; i++) {
result.push(fib.next().value);
}
const sum = result.reduce((total, num) => total + num, 0);
console.log(sum);
CHALLENGE
const date = new Date('2023-05-15T12:30:00Z'); // A specific UTC date
const formatter = new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
timeZone: 'America/New_York'
});
const parts = formatter.formatToParts(date);
const month = parts.find(part => part.type === 'month').value;
const day = parts.find(part => part.type === 'day').value;
const hour = parts.find(part => part.type === 'hour').value;
console.log(`${month} ${day}, at ${hour}`);
What is the output?
Anonymous Quiz
18%
May 15, at 8
31%
May 15, at 08
30%
May 15, at 08 AM
21%
May 15, at 12
React continues to be a major dependency in the JavaScript world but recent innovations have led to much discussion about how it should move forward. Redux maintainer Mark Erikson gives an overview of Reactās development over time, what led to some of its innovations, and dispels some āFUD and confusionā about where it's headed.
Mark Erikson
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML Embed Code: