31615
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
🤩 SquirrellyJS 9: A Powerful Template Engine
A modern, configurable, and fast template engine promising “the power of Nunjucks” and “the simplicity of EJS”. There’s an online playground if you want to see it in action.
Ben Gubler
🌕 Did you hear? Google Chrome now comes with its Gemini Nano model. (It will be in your browser already.)
Soon, all websites will start using WebAI because the model will run on your computer, and they won't need to spend resources on it.
Narek Hakobyan
🥂 Woohoo! We've hit 20K members!
Your enthusiasm, contributions, and support have brought us to this milestone. Let’s keep the energy high as we continue to learn, share, and innovate together. Here’s to many more achievements on our journey!
✌️ Check out our emoji pack here
⚡️ Boost us in Telegram
🤝 Collaboration
⭐️ Let's Make This the Most Starred README! ⭐️
Welcome to our fun experiment! Help us create a galaxy of stars on this README.
How to Participate:
⭐️ Star this repository!
🎉 Share it with friends.
Why Star This Repo?
- Be part of a fun community experiment.
- See how many stars we can collect together.
- Enjoy watching this project grow!
Let's turn this README into the most starred repository ever!
Star Now!
👑 Recreating the Queens Game in Vue
Queens is a puzzle game that combines elements of Minesweeper, chess, and Sudoku.
Fotis Adamakis
✌️ A Look at JavaScript's New Set Methods
Finding the intersection, union, and difference between sets, among other set-related tasks, is now a piece of cake. Available in Node 22+, Chrome/Edge 122+, Firefox 127+, Safari 17+, and now considered a 'baseline' feature.
Brian Smith (MDN)
👀 PixelMatch 6.0: A Fast Pixel-Level Image Comparison Library
Give it two images, it’ll highlight the differences. Now distributed as a ES module.
Mapbox
✌️ The Results of the State of JavaScript 2023 Survey
It feels odd including something about 2023 in June 2024, but the results of the major annual JavaScript developer survey are now out. It’s interesting to see what features JS devs do and don’t use, changes in library popularity over time, what build tools people are using, the divide between JavaScript and TypeScript usage, and much more besides.
Devographics
😉 3D in TypeScript with Raycasting
Raycasting is a somewhat old fashioned technique to render 3D environments (you may have seen it in 1992’s Wolfenstein 3D) but it’s easy to understand and worth implementing at least once.
Tsoding Daily
🌲 Node v22.3.0 (Current) Released
One of those releases where lots of tiny things have occurred, but little of broad significance, except… for snapshot testing! Snapshot tests serialize arbitrary values into string values to be compared against a set of pre-built known ‘good’ values (stored as a ‘snapshot’ representing a desired state).
Rafael Gonzaga
To continue delivering more exciting stories, we're kindly asking telegram premium users to help us take things to the next level.
/channel/javascript?boost
CHALLENGE
Читать полностью…
const array = [1, 2, [3, 4, [5, 6]]];
const result = array.flat(2).map(n => n * 2);
console.log(result);
CHALLENGE
Читать полностью…
const array = [1, 2, [3, 4, [5, 6]]];
const result = array.flat(2).map(n => n * 2);
console.log(result);
CHALLENGE
Читать полностью…
function* generator() {
yield 'a';
yield* 'bcd';
yield 'e';
}
const gen = generator();
console.log([...gen]);
CHALLENGE
Читать полностью…
const array = [1, 2, 3, 4, 5];
const result = array.find(n => n > 3) ? array.every(n => n < 6) : array.some(n => n > 4);
console.log(result);
CHALLENGE
Читать полностью…
const obj1 = { a: 1 };
const obj2 = Object.create(obj1);
obj2.b = 2;
const result = Object.entries(obj2).map(([key, value]) => key + value);
console.log(result);
CHALLENGE
Читать полностью…
const array = [1, 2, 3, 4, 5];
const result = array.splice(2, 2, 6, 7);
console.log(array, result);
CHALLENGE
Читать полностью…
class Parent {
static greet() {
return 'Hello from Parent';
}
}
class Child extends Parent {
static greet() {
return super.greet() + ' and Child';
}
}
const childInstance = new Child();
console.log(childInstance.greet);
CHALLENGE
const obj = {};
let value = 0;
Object.defineProperty(obj, 'prop', {
get() {
return value;
},
set(newValue) {
value = newValue + 1;
},
configurable: true,
enumerable: true
});
obj.prop = 10;
console.log(obj.prop);
Читать полностью…
CHALLENGE
Читать полностью…
const arr = [1, 2, 3, 4, 5];
const [first, , third, ...rest] = arr;
console.log(first, third, rest);
CHALLENGE
Читать полностью…
const array = [1, 2, 3, 4, 5];
const result = array.filter(n => n % 2).map(n => n * 2);
console.log(result);
CHALLENGE
Читать полностью…
const obj1 = { a: 1 };
const obj2 = Object.create(obj1);
obj2.b = 2;
console.log(obj2.a, obj2.b);
console.log(obj2.hasOwnProperty('a'));
console.log(Object.getPrototypeOf(obj2) === obj1);
CHALLENGE
Читать полностью…
async function asyncFunc() {
return 'async function';
}
function* generator() {
yield 'generator';
yield asyncFunc();
yield 'done';
}
const gen = generator();
(async function() {
console.log(gen.next().value);
console.log(await gen.next().value);
console.log(gen.next().value);
})();
CHALLENGE
Читать полностью…
const obj1 = {
a: 1,
method() {
return this.a;
}
};
const obj2 = Object.create(obj1);
obj2.a = 2;
console.log(obj2.method());
CHALLENGE
Читать полностью…
function Animal() {}
const dog = new Animal();
console.log(dog.constructor === Animal);