TGViewer
Channel Public Channel
JavaScript

JavaScript

@javascript

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
Subscribers
31.1K
Photos
1.2K
Videos
10
Links
898

Showing posts older than #2435 Β· Back to latest

Older Posts 20 shown
Post #2434 5.68K
✌️ Ecma International Approves ECMAScript 2025

What’s New? β€” It’s that time of year again. The Ecma General Assembly has approved the ES2025 language specification, which you can read in full here if you have a gallon of coffee to hand β€” or you can enjoy Dr. Axel’s more succinct explainer instead.

Dr. Axel Rauschmayer
  • ❀ 8
  • πŸ‘ 3
  • πŸ”₯ 2
  • πŸ€” 1
Post #2433 4.67K
  • πŸ‘ 5
  • πŸ”₯ 3
  • ❀ 2
  • πŸ€” 1
Post #2432 4.6K
CHALLENGE

function outer() {
console.log(typeof inner);
console.log(typeof inner2);

var inner = function() {
return 'Inside inner';
};

function inner2() {
return 'Inside inner2';
}

console.log(typeof inner);
console.log(typeof inner2);
}

outer();
  • πŸ‘ 4
  • ❀ 1
Post #2431 4.68K
  • πŸ‘ 5
  • ❀ 3
  • πŸ€” 2
  • πŸ”₯ 1
Post #2430 4.91K
CHALLENGE

function* counter() {
let count = 1;
while (true) {
const reset = yield count++;
if (reset) {
count = 1;
}
}
}

const gen = counter();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next(true).value);
console.log(gen.next().value);
  • πŸ‘ 6
  • ❀ 3
Post #2429 4.78K
  • ❀ 4
  • πŸ€” 4
  • πŸ‘ 1
Post #2428 4.83K
CHALLENGE

const text = 'Today is 2023-12-31 and tomorrow is 2024-01-01';
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/g;

let result = '';
let match;

while ((match = dateRegex.exec(text)) !== null) {
const [fullMatch, year, month, day] = match;
result += `${day}/${month}/${year.slice(2)} `;
}

console.log(result.trim());
  • ❀ 5
  • πŸ‘ 2
Post #2427 4.7K
πŸ€” The Roadmap to AdonisJS 7

Adonis is a popular TypeScript-first 'batteries included' web framework with a rich set of features, and its developers say they’re β€œshifting gears” and stepping up with more frequent major releases. v7 promises a lot, including Node.js diagnostic channel support, a type-safe URL builder, a new encryption layer, first-class support for notifications and TanStack Query, plus more. You’re encouraged to give your feedback here.

Romain Lanz
  • ❀ 6
  • πŸ”₯ 3
  • πŸ‘ 2
Post #2426 4.56K
  • πŸ‘ 7
  • ❀ 4
  • πŸ”₯ 2
Post #2425 4.65K
CHALLENGE

const obj = { name: 'Alice', age: 30 };  
const handler = {
get(target, prop) {
return prop in target ? target[prop] : `Property '${prop}' doesn't exist`;
}
};

const proxy = new Proxy(obj, handler);

const descriptors = Object.getOwnPropertyDescriptors(obj);
Reflect.defineProperty(obj, 'city', {
value: 'New York',
enumerable: false
});

console.log(proxy.city, proxy.country);
  • ❀ 3
  • πŸ”₯ 2
Post #2424 4.61K
  • 🀣 22
  • πŸ€” 17
  • ❀ 5
Post #2423 4.88K
CHALLENGE

const createMathOps = (base) => {
return {
add: (x) => base + x,
multiply: (x) => base * x
};
};

const createAdvancedMathOps = (base) => {
const basicOps = createMathOps(base);
return {
...basicOps,
square: () => basicOps.multiply(base),
addThenSquare: (x) => {
const added = basicOps.add(x);
return added * added;
}
};
};

const calculator = createAdvancedMathOps(5);
console.log(calculator.addThenSquare(3));
  • πŸ‘ 8
  • ❀ 1
Post #2422 4.57K
  • πŸ”₯ 8
  • ❀ 5
  • πŸ‘ 3
Post #2421 4.53K
CHALLENGE

function processConfig(config) {
const settings = {
timeout: config.timeout ?? 1000,
retries: config.retries ?? 3,
logging: config.logging ?? false,
debug: config.debug || true
};

return settings;
}

const userConfig = {
timeout: 0,
retries: null,
logging: false,
debug: false
};

console.log(processConfig(userConfig));
  • πŸ‘ 9
  • ❀ 2
Post #2420 4.79K
πŸ€” <syntax-highlight>: A Custom Element for Syntax Highlighting

A custom element that uses the CSS Custom Highlight API (supported by most modern browsers) for syntax highlighting so you don’t need to retreat to the age-old method of wrapping every token in spans.

AndrΓ© Ruffert
  • πŸ‘ 6
  • ❀ 3
  • πŸ”₯ 1
Post #2419 4.79K
  • πŸ€” 6
  • ❀ 5
  • πŸ‘ 4
Post #2418 4.82K
CHALLENGE

const templateFn = (strings, ...values) => {
return strings.reduce((result, str, i) => {
const value = values[i] !== undefined ?
(typeof values[i] === 'number' ? values[i] * 2 : values[i]) : '';
return result + str + value;
}, '');
};

const num = 5;
const str = 'world';

const result = templateFn`Hello ${str}, ${num} times ${'!'}`;
console.log(result);
  • πŸ‘ 5
  • ❀ 2
Post #2417 4.73K
πŸ˜‰ Compiling JavaScript Ahead-of-Time

The creator of the Porffor JavaScript compiler talks about the various ways to make JavaScript faster to execute, before digging into Porffor’s approach.

Oliver Medhurst
  • ❀ 5
  • πŸ‘ 4
  • πŸ”₯ 1
Post #2416 4.75K
  • πŸ‘ 6
  • πŸ€” 2
  • ❀ 1
  • πŸ”₯ 1
Post #2415 4.79K
CHALLENGE

class ShoppingCart {
constructor() {
if (ShoppingCart.instance) {
return ShoppingCart.instance;
}

this.items = [];
ShoppingCart.instance = this;
}

addItem(item) {
this.items.push(item);
}

getItems() {
return [...this.items];
}
}

const cart1 = new ShoppingCart();
const cart2 = new ShoppingCart();

cart1.addItem('Book');
cart2.addItem('Laptop');

console.log(cart1.getItems());
Older posts β†’
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook β†’Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 β†’