const notificationSound = new Audio("/assets/audio/notification.wav")
let messaging = firebase.messaging();
messaging.onMessage(function (payload) {
            console.log("Message received. ", payload);
            notificationSound.play();
});array.reduce(
  (acc, current, i) => {
    acc[i % 2] += current; // к чётному/нечетному прибавить
    return acc; // вернуть массив
  },
  [0, 0]  // начальное значение
)let a, b;
console.log(
  ( a = 2 + 2, b = ["QnA", "Habr", "com"].join("."), "Отметить решением" )
); 
// "Отметить решением"const that = this; // Window
let a = {
    one: that, // всё тот же Window
    two: 'test' 
}
console.log(a.one) // Windowconst one = () => this; // объявили в глобальном контексте
let a = {
  one,
  two: "two",
}
a.one() // Window{
  const div = document.createElement("div"); // создать обёрточный div
  div.classList.add("QnA-habr-com"); // добавить ему какой-то класс
  const els = document.querySelectorAll("#rec365427333, #rec365427599"); // выбрать элементы
  const parent = els[0].parentNode; // определить родителя первого из них
  parent.appendChild(div); // вложить обёрточный див в родителя 
  els.forEach((el) => div.appendChild(el)) // перенести в обёртку те два
}div#allrecords и можно их отбирать как const els = document.querySelectorAll("div#allrecords > div");const items = {111: {id: 111}, 222: {id: 222}};
items // Object { 111: {…}, 222: {…} }
delete items[111]  // true
items // Object { 222: {…} }Object.defineProperty()?  Что покажет Object.getOwnPropertyDescriptor(items, 53522) — там writable: true ?      ̲ – он делает предшествующий символ подчёркнутым.{ сумма: счётчик }, сколько раз каждая сумма встретилась на всём диапазоне 000..999 (для n = 6, т.е. половина = 3)function getLuckyTicketsCount(n) {
  const sums = {};
  for (let i = 0; i < Math.pow(10, n >> 1); i++) {
    // посчитать сумму цифр
    let sum = 0, d = i;
    while (d > 0) {
      sum += d % 10; // прибавили младшую цифру
      d = Math.floor(d / 10); // сдвинули число вправо на 1 цифру
    }
    // и в словарь прибавить 1 для этой суммы
    sums[sum] = (sums[sum] || 0) + 1;
  }
  return Object.values(sums) // счетчики суммм
    .map((n) => n * n) // квадраты
    .reduce((acc, c) => acc + c); // сложить все
}В чём отличие от присваиваниятолько в том, что сохранили значение, которое возвращает вызов. Для этой функции это значение некий уникальный id, по которому, при необходимости, можно отменить вызов черезa = requestAnimationFrame(anim)и от обычного вызоваrequestAnimationFrame(anim)?
cancelAnimationFrame(), но в приведённом коде это значение никак не используется.Почему идёт каждый раз вызов функции anim()Первый раз потому, что в конце кода стоит вызов requestAnimationFrame(). Последующие — потому, что в конце очередной отработки anim() есть вызов a = requestAnimationFrame(anim); при условии, что счётчик не превышен.      <div v-for="messages in message">{{ messages.name }}</div>computed: {
  thirdName() {
    if (this.messages.length >= 3) {
      return this.messages[2].name;
    }
  }
},<div v-if="thirdName">Имя: {{ thirdName }}</div>