ch
Feedback
JavaScript

JavaScript

前往频道在 Telegram

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

显示更多

📈 Telegram 频道 JavaScript 的分析概览

频道 JavaScript (@javascript) 英语 语言赛道中的 是活跃参与者。目前社区聚集了 31 441 名订阅者,在 技术与应用 类别中位列第 4 382,并在 印度 地区排名第 13 579

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 31 441 名订阅者。

根据 12 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -211,过去 24 小时变化为 -26,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 6.22%。内容发布后 24 小时内通常能获得 2.53% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 1 955 次浏览,首日通常累积 794 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 7
  • 主题关注点: 内容集中在 javascript, console.log(gen.next().value, processdata, remix, acc 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
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

凭借高频更新(最新数据采集于 13 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

31 441
订阅者
-2624 小时
-807
-21130
帖子存档
What is the output?
Anonymous voting

CHALLENGE

const person = { name: "Carlos", scores: [10, 20, 30] };
const clone = { ...person };

clone.name = "Diana";
clone.scores.push(40);

const snapshot = Object.assign({}, person);
snapshot.name = "Elena";
snapshot.scores.push(50);

console.log(person.name);
console.log(person.scores.length);
console.log(clone.name);
console.log(clone.scores === person.scores);

What is the output?
Anonymous voting

CHALLENGE

const str = "JavaScript is Awesome!";

const result = str
  .split(" ")
  .map((word, i) => {
    if (i % 2 === 0) return word.toUpperCase();
    return word.toLowerCase();
  })
  .map((word) => [...word].reverse().join(""))
  .join("-");

console.log(result);

What is the output?
Anonymous voting

CHALLENGE

const handler = {
  get(target, prop, receiver) {
    if (prop === 'fullName') {
      return `${Reflect.get(target, 'firstName', receiver)} ${Reflect.get(target, 'lastName', receiver)}`;
    }
    return Reflect.get(target, prop, receiver);
  },
  set(target, prop, value, receiver) {
    if (typeof value !== 'string') {
      return false;
    }
    return Reflect.set(target, prop, value.trim(), receiver);
  },
  has(target, prop) {
    return prop.startsWith('_') ? false : Reflect.has(target, prop);
  }
};

const person = new Proxy({ firstName: '  Clara', lastName: 'Oswald  ', _secret: 'hidden' }, handler);
person.firstName = '  Clara';
person.lastName = '  Oswald';

console.log(person.fullName);
console.log('_secret' in person);
console.log(Reflect.ownKeys(person).length);

What is the output?
Anonymous voting

CHALLENGE
const inventory = {
  apples: 5,
  bananas: 12,
  cherries: 0,
  dates: 8,
};

const result = Object.entries(inventory)
  .filter(([_, qty]) => qty > 0)
  .reduce((acc, [fruit, qty]) => {
    acc[fruit] = qty * 2;
    return acc;
  }, {});

const keys = Object.keys(result);
const values = Object.values(result);

console.log(keys.length, values.reduce((sum, v) => sum + v, 0));

👀 Solid v2.0.0 Beta: The is Over After a long experimental phase, Solid 2.0’s first beta lands with first-class async suppor
👀 Solid v2.0.0 Beta: The <Suspense> is Over After a long experimental phase, Solid 2.0’s first beta lands with first-class async support where computations can return Promises or async iterables, and the reactive graph suspends and resumes around them natively. <Suspense> is retired in favor of <Loading> for initial renders, and mutations get a first-class action() primitive with optimistic support. For existing users the breaking changes are substantial, but there’s a migration guide. Ryan Carniato

What is the output?
Anonymous voting

CHALLENGE
class AppError extends Error {
  constructor(message, code) {
    super(message);
    this.name = "AppError";
    this.code = code;
  }
}

function riskyOperation(value) {
  if (value === null) throw new AppError("Null value", 404);
  if (typeof value !== "number") throw new TypeError("Not a number");
  if (value < 0) throw new RangeError("Negative value");
  return value * 2;
}

const inputs = [42, null, "hello", -5];
const results = inputs.map((input) => {
  try {
    return riskyOperation(input);
  } catch (err) {
    if (err instanceof AppError) return `AppError:${err.code}`;
    if (err instanceof TypeError) return `TypeError`;
    if (err instanceof RangeError) return `RangeError`;
    return `UnknownError`;
  }
});

console.log(results);

What is the output?
Anonymous voting

CHALLENGE

const transactions = [
  { id: 1, type: "credit", amount: 200 },
  { id: 2, type: "debit",  amount: 50  },
  { id: 3, type: "credit", amount: 150 },
  { id: 4, type: "debit",  amount: 30  },
  { id: 5, type: "credit", amount: 100 },
];

const result = transactions
  .filter(tx => tx.type === "credit")
  .map(tx => ({ ...tx, amount: tx.amount * 1.1 }))
  .reduce((acc, tx) => acc + tx.amount, 0);

console.log(result.toFixed(2));

What is the output?
Anonymous voting

CHALLENGE
const product = {
  name: "Laptop",
  price: 1299,
  stock: 42,
  discount: 0,
  category: "Electronics",
};

const filtered = Object.entries(product)
  .filter(([key, value]) => Boolean(value))
  .reduce((acc, [key, value]) => {
    acc[key] = value;
    return acc;
  }, {});

console.log(Object.keys(filtered).length);
console.log(Object.values(filtered).includes(0));
console.log(Object.keys(filtered).join(", "));

What is the output?
Anonymous voting

CHALLENGE
const engine = {
  type: "V8",
  displacement: 4.0,
  getInfo() {
    return `${this.type} - ${this.displacement}L`;
  },
  turbo: {
    boost: 12,
    getBoost() {
      return `${this.type ?? "Unknown"} boosted at ${this.boost} psi`;
    },
  },
};

const detached = engine.getInfo;
const turboInfo = engine.turbo.getBoost;

console.log(engine.getInfo());
console.log(engine.turbo.getBoost());
console.log(turboInfo());

😆
😆

What is the output?
Anonymous voting

CHALLENGE
class Registry {
  static #cache = new Map();
  static #instanceCount = 0;
  static defaultTTL;

  static {
    Registry.#cache.set("base", { value: 42, active: true });
    Registry.#instanceCount = 1;
    Registry.defaultTTL = 3600;
    console.log("Static block 1:", Registry.#instanceCount, Registry.defaultTTL);
  }

  static {
    const base = Registry.#cache.get("base");
    Registry.#cache.set("derived", { value: base.value * 2, active: false });
    Registry.#instanceCount++;
    console.log("Static block 2:", Registry.#instanceCount, Registry.#cache.size);
  }

  static getSnapshot() {
    return [...Registry.#cache.entries()]
      .map(([k, v]) => `${k}:${v.value}`)
      .join(", ");
  }
}

console.log("Snapshot:", Registry.getSnapshot());
console.log("TTL:", Registry.defaultTTL);