What is the output?
  Anonymous Quiz
    22%
    true running true idle
      
    37%
    true started false started
      
    32%
    true running false running
      
    8%
    false idle true idle
      
    β€2π2π₯2
  CHALLENGE
const target = { name: 'Sarah', age: 25 };
const handler = {
  get(obj, prop) {
    if (prop === 'toString') {
      return () => `Person: ${obj.name}`;
    }
    return Reflect.get(obj, prop);
  },
  has(obj, prop) {
    return prop !== 'age' && Reflect.has(obj, prop);
  }
};
const proxy = new Proxy(target, handler);
console.log(proxy.name);
console.log('age' in proxy);
console.log(proxy.toString());π€©3π€1
  What is the output?
  Anonymous Quiz
    23%
    Sarah false [object Object]
      
    41%
    Sarah true [object Object]
      
    27%
    Sarah false Person: Sarah
      
    8%
    undefined false Person: Sarah
      
    β€6π₯4π€©3π1
  CHALLENGE
async function processData() {
  console.log('Start');
  
  const promise1 = new Promise(resolve => {
    console.log('Promise 1 executor');
    resolve('Result 1');
  });
  
  const promise2 = Promise.resolve('Result 2');
  console.log('After promises created');
  
  const result1 = await promise1;
  console.log(result1);
  
  const result2 = await promise2;
  console.log(result2);
  
  return 'Done';
}
processData().then(result => console.log(result));β€1
  What is the output?
  Anonymous Quiz
    35%
    Start Promise 1 executor After promises created Result 1 Result 2 Done
      
    27%
    Promise 1 executor Start After promises created Result 1 Result 2 Done
      
    18%
    Start Promise 1 executor Result 1 After promises created Result 2 Done
      
    20%
    Start After promises created Promise 1 executor Result 1 Result 2 Done
      
    β€5π1π₯1
  The Chrome team has released an MCP server for Chrome DevTools, enabling agents like Claude Code or OpenAI Codex to use the DevTools to debug and analyze the performance and behavior of your webapps (or even just to automate the use of Chrome generally). Addy does a great job of explaining the potential here.
Addy Osmani
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€7π3π₯2
  CHALLENGE
  console.log('1');
Promise.resolve().then(() => {
  console.log('2');
  Promise.resolve().then(() => console.log('3'));
});
Promise.resolve().then(() => {
  console.log('4');
});
setTimeout(() => console.log('5'), 0);
console.log('6');β€7π4
  βWeβve been busy,β says Cloudflare which recently announced itβs bringing Node.js HTTP server support to its Workers function platform. This post goes deep into the technicalities, covering what areas of the standard library is supported, how the file system works (Workers doesnβt have a typical file system), how input/output streams work, and more. And you can use all of this now.
James M Snell (Cloudflare)
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€8π₯3π1
  CHALLENGE
function processData() {
  try {
    console.log('processing');
    return 'success';
  } catch (error) {
    console.log('error caught');
    return 'failed';
  } finally {
    console.log('cleanup');
  }
}
const result = processData();
console.log('result:', result);π₯2
  What is the output?
  Anonymous Quiz
    13%
    error caught cleanup result: failed
      
    49%
    processing cleanup result: success
      
    19%
    processing cleanup result: undefined
      
    19%
    processing result: success cleanup
      
    β€4π3
  Please open Telegram to view this post
    VIEW IN TELEGRAM
  π€£11β€5π1
  CHALLENGE
class EventEmitter {
  constructor() { this.events = {}; }
  on(event, fn) { (this.events[event] ||= []).push(fn); }
  emit(event, data) { this.events[event]?.forEach(fn => fn(data)); }
}
class Logger {
  log(msg) { console.log(`LOG: ${msg}`); }
}
class Counter {
  constructor() { this.count = 0; }
  increment() { this.count++; console.log(this.count); }
}
function withLogging(target) {
  const logger = new Logger();
  return new Proxy(target, {
    get(obj, prop) {
      if (typeof obj[prop] === 'function') {
        return function(...args) {
          logger.log(`calling ${prop}`);
          return obj[prop].apply(obj, args);
        };
      }
      return obj[prop];
    }
  });
}
const emitter = withLogging(new EventEmitter());
const counter = new Counter();
emitter.on('tick', () => counter.increment());
emitter.emit('tick');
emitter.emit('tick');π€6
  What is the output?
  Anonymous Quiz
    18%
    LOG: on LOG: emit 1 LOG: emit 2
      
    47%
    LOG: calling on 1 2 LOG: calling emit LOG: calling emit
      
    22%
    calling on calling emit 1 calling emit 2
      
    14%
    LOG: calling on LOG: calling emit 1 LOG: calling emit 2
      
    π₯3β€2π1
  CHALLENGE
class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    return `${this.name} makes a sound`;
  }
}
class Dog extends Animal {
  speak() {
    return super.speak() + ' and barks';
  }
}
const pet = new Dog('Rex');
console.log(pet.speak());
console.log(pet instanceof Animal);
console.log(pet.constructor.name);β€5π1
  What is the output?
  Anonymous Quiz
    43%
    Rex makes a sound and barks true Dog
      
    21%
    Rex barks false Dog
      
    27%
    Rex makes a sound and barks true Animal
      
    10%
    Rex makes a sound true Dog
      
    π10π€1
  Each year, Devographics runs an epic survey of as many JavaScript community members as it can and turns the results into an interesting report on the state of the ecosystem β hereβs the results from 2024. If you have the time, fill it in, especially as they format it in a way where you can actually learn about stuff as you go.
Devographics
Please open Telegram to view this post
    VIEW IN TELEGRAM
  β€4π€2π₯1
  CHALLENGE
class DataProcessor {
  constructor(value) {
    this.value = value;
  }
  
  transform(fn) {
    return new DataProcessor(fn(this.value));
  }
  
  getValue() {
    return this.value;
  }
}
const multiply = x => x * 2;
const add = x => x + 10;
const square = x => x * x;
const result = new DataProcessor(5)
  .transform(multiply)
  .transform(add)
  .transform(square)
  .getValue();
console.log(result);β€2
  β€8π3π₯1
  CHALLENGE
  const Flyable = {
  fly() { return 'flying'; }
};
const Swimmable = {
  swim() { return 'swimming'; }
};
function mixin(Base, ...mixins) {
  mixins.forEach(mixin => Object.assign(Base.prototype, mixin));
  return Base;
}
class Bird {}
class Fish {}
const FlyingFish = mixin(class extends Fish {}, Flyable, Swimmable);
const instance = new FlyingFish();
console.log(instance.swim());
console.log(instance.fly());
console.log(instance instanceof Fish);What is the output?
  Anonymous Quiz
    21%
    flying, swimming, false
      
    45%
    swimming, flying, true
      
    23%
    undefined, undefined, true
      
    11%
    swimming, flying, false
      
    β€2π€1