Вопрос, на который большинство фронтенд-разработчиков не знают ответа

Недавно мой друг был поставлен в тупик вопросом о sessionStorage во время интервью.

Ну, должен признать, я не знаком с этим. Мой хороший друг, ты понял это?

Может ли sessionStorage обмениваться данными между несколькими вкладками?

О процессе собеседования

Вопрос 1: "Знаете ли вы, в чем разница между localStorage и sessionStorage?"

Мой друг: Он был так счастлив, потому что это знание, которое знает любой фронтенд-разработчик.

  1. Данные localStorage являются постоянными, пока мы не очистим их активно, они будут существовать всегда.
  2. Закрытие вкладки/окна завершает сеанс и очищает объекты в sessionStorage.

Вопрос 2. Может ли localStorage совместно использовать данные на одном и том же веб-сайте?

Мой друг: «Это еще один легкий! Данные могут быть разделены между разными вкладками или окнами на одном и том же веб-сайте».

// Let's try to set a name in window 1 page 1
localStorage.setItem('name', 'fatfish')
// We try to read the current name in window 2 page 2
localStorage.getItem('name') // fatfish

Вопрос 3: "Вы молодцы, я хочу проверить еще один вопрос: может ли sessionStorage обмениваться данными между несколькими вкладками"

Мой друг: «Нет, у каждого окна или вкладки есть отдельное sessionStorage, обмена данными между ними нет»

Интервьюер: «Вы действительно уверены, что это так?»

Мой друг: «Э! Я не уверен, может быть!»

Возможно, мой друг пропустил предложение из-за этого вопроса, но нам, как разработчикам, необходимо постоянно улучшать свои знания и навыки.

Что такое сеансовое хранилище?

(из mdn) Доступное только для чтения свойство sessionStorage обращается к объекту Storage сеанса для текущего источника. sessionStorage похож на localStorage; разница в том, что хотя срок действия данных в localStorage не истекает, данные в sessionStorage очищаются по завершении сеанса страницы.