en
Feedback
CodeRoll | Frontend

CodeRoll | Frontend

Open in Telegram

OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги — Веб-разработка на JS, HTML, CSS, React, Vue,Angular Купить рекламу: https://telega.in/c/coderoll Чат: https://t.me/coderoll_chat По всем вопросам пишите сюда - @yankovsky_ads

Show more
4 234
Subscribers
-124 hours
-77 days
-5330 days
Posts Archive

const add = () => {
  const cache = {}
  return num => {
    if (num in cache) {
      return `Из кеша! ${cache[num]}`
    } else {
      const result = num + 10
      cache[num] = result
      return `Вычислено! ${result}`
    }
  }
}

const addFunction = add()
console.log(addFunction(10))
console.log(addFunction(10))
console.log(addFunction(5 * 2))

Пояснение к ответу Оператор delete возвращает логическое значение: true при успешном удалении, иначе - false. Однако, переменные, объявленные с помощью ключевых слов, не могут быть удалены с помощью delete. Переменная name была объявлена ​​с помощью ключевого слова const, поэтому возвращается false. Когда мы устанавливаем переменную age равной 30, мы фактически добавляем свойство age к глобальному объекту (window.age в браузере, global.age в Node.js). Свойства объектов, включая глобальный, удалять можно, поэтому выражение delete age возвращает true.

Что будет в консоли ?
Anonymous voting


const name = "John"
age = 30

console.log(delete name)
console.log(delete age)

Пояснение к ответу Импортируемый модуль доступен только для чтения: мы не можем его изменять. Это можно сделать только перед экспортом. Когда мы пытаемся увеличить значение переменной myCounter, возникает ошибка myCounter доступен только для чтения и не может быть изменен.

Что будет в консоли ?
Anonymous voting


// counter.js
let counter = 10
export default counter

// index.js
import myCounter from "./counter.js"

myCounter += 1

console.log(myCounter)

Разбираемся в серверных и клиентских компонентах в Next.js: когда, как и почему? Next.js предлагает широкие возможности для с
Разбираемся в серверных и клиентских компонентах в Next.js: когда, как и почему? Next.js предлагает широкие возможности для создания высокопроизводительных веб-приложений. Важной частью его функциональности с появлением Next App Router являются серверные и клиентские компоненты, которые позволяют разработчикам управлять рендерингом на стороне сервера и на стороне клиента, в зависимости от требований проекта. Давайте разберемся в этих компонентах более подробно. Ссылка #статьи

Как стать востребованным разработчиком (Лекция без воды) Классика IT: учите и отрабатываете одно, а в вакансиях видите другое
Как стать востребованным разработчиком (Лекция без воды) Классика IT: учите и отрабатываете одно, а в вакансиях видите другое. По итогу злитесь и начинаете по-новой. А нужно получить набор знаний и навыков, которые востребованы в реальных проектах. К примеру, на старте вам не нужно знать все паттерны проектирования. Знаний ООП и принципов SOLID будет вполне достаточно. А стандартный pet-проект с простейшими crud-операциями в вашем CV далеко не то, что хотят видеть рекрутеры. Чтобы узнать, какие ключевые hard и soft skills качать в первую очередь, как искать лучшие вакансии в IT, сделать портфолио идеальным для работодателя и получить желанный оффер от 100 000 рублей, приходите на онлайн-эфир от «FAANG School». Мастер-класс проведет разработчик из BigTech-компании с многолетним опытом. Переходите, полезные подарки уже ждут: - Подробный гайд «Как найти работу в IT» - Пошаговый Roadmap по Java - Шпаргалка «Hotkey JetBrains IDE» - Шпаргалка по Rest API

Пояснение к ответу Оператор delete позволяет удалять свойства объектов, включая свойства прототипов. Удаленное свойство прототипа становится недоступным в цепочке прототипов. Другими словами, функция bark после delete Dog.prototype.bark становится недоступной, однако мы все же пытаемся получить к ней доступ. Когда мы пытаемся вызвать нечто, не являющееся функцией, выбрасывается исключение TypeError: в данном случае TypeError: pet.bark is not a function, поскольку значением свойства bark объекта pet является undefined.

Что будет в консоли ?
Anonymous voting


class Dog {
  constructor(name) {
    this.name = name
  }
}

Dog.prototype.bark = function() {
  console.log(`Woof I am ${this.name}`)
}

const pet = new Dog("Rex")

pet.bark()

delete Dog.prototype.bark

pet.bark()

Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling Веб-разработка часто требует реализации механизм
Асинхронный веб: WebSocket, Server-Sent Events, Long Polling и Short Polling Веб-разработка часто требует реализации механизмов обновления контента на странице в реальном времени. Существуют различные сценарии, где это необходимо, например, отображение прогресса выполнения тяжелых задач на бекенде, обновление каких-либо часто меняющихся данных, будь то курсы валют или мониторинг какой-то активности, чаты, различные уведомления. Эти сценарии объединяет одна общая особенность: источник события необходимости обновления данных находится не на клиентской стороне, поэтому мы хотим получать события с бекенда. В данной статье мы рассмотрим четыре популярных подхода к реализации этой функциональности: WebSocket, Server-Sent Events (SSE), Long Polling и Short Polling. Мы проанализируем каждый метод, выявим их плюсы, минусы и сложность реализации. Ссылка #статьи

Мидл-специалист отличается от джуниор-разработчика не только опытом и уровнем владения технологиями, но и софт-скилами. На ку
Мидл-специалист отличается от джуниор-разработчика не только опытом и уровнем владения технологиями, но и софт-скилами. На курсе Практикума вы сможете прокачать все необходимые навыки и построить новую карьеру. На курсе мы поможем вам: — освоить новые навыки и извлекать больше пользы из своих софт-скилов; — углубить знания в алгоритмах, DevOps, бэкенд‑разработке и смежных сферах; — сделать с нуля 2 проекта — до работающих приложений. Если вы не уверены, подойдёт ли вам профессия, — пройдите бесплатную часть и тест в конце. Если понравится, платите за остальную часть как удобно: в рассрочку или целиком. → Начать курс бесплатно

Пояснение к ответу Выражение let x = y = 10 на самом деле является сокращением для y = 10; let x = y. Когда мы устанавливаем y равным 10, мы фактически добавляем свойство y к глобальному объекту (window в браузере, global в Node.js). В браузере window.y теперь равняется 10. Затем мы объявляем переменную x со значением y. Переменные, объявленные с помощью ключевых слов let и const, имеют блочную область видимости, они доступны только в том блоке, в котором они объявлены. Таким блоком в данном случае является немедленно вызываемое функциональное выражение (Immediately Invoked Function Expression, IIFE). Когда мы используем оператор typeof, операнд x не определен: мы пытаемся получить доступ к x вне блока его объявления. Это означает, что x имеет значение undefined. Переменные, которым не присвоено значение, по умолчанию имеют значение undefined. Выражение console.log(typeof x) возвращает undefined. Однако, мы создали глобальную переменную y, присвоив ей значение 10. Это значение доступно в любом месте кода. y определена и содержит значение типа number. Поэтому выражение console.log(typeof y) возвращает number.

Что будет в консоли ?
Anonymous voting


(() => {
  let x = (y = 10)
})()

console.log(typeof x)
console.log(typeof y)

Пояснение к ответу Когда возвращается свойство, его значение равняется возвращаемому значению, а не значению, установленному в функции-конструкторе. Мы возвращаем строку Maserati, поэтому значением myCar.make является Maserati.

Что будет в консоли ?
Anonymous voting


function Car() {
  this.make = "Lamborghini"
  return { make: "Maserati" }
}

const myCar = new Car()
console.log(myCar.make)