STARTPOINT_DEV Telegram 12
Настя Котова // Frontend & Node.js
Разбираемся с потерей контекста this в JavaScript! 🔍 Мы часто сталкиваемся с вопросами о this на собеседованиях по JavaScript. Сегодня мы разберем типичный случай, когда контекст this теряется и как это повлияет на код. 📝 Рассмотрим пример: function show()…
🔍 Вспоминаем наш последний разговор о контексте this в JavaScript и углубляемся в детали глобального объекта! 🌐

Когда мы вызываем такую функцию:

function show() {
console.log(this);
}
show();

результат зависит от режима выполнения кода: в строгом режиме получим undefined, в нестрогом — глобальный объект.

🔹 Что такое глобальный объект?
Это специальный объект, который доступен в любом уголке нашего JavaScript-кода. В браузере он известен как window, в Node.js — как global.

🔸 Как работать с глобальными объектами?
1. Можно обращаться к свойствам глобального объекта напрямую:

alert("Привет"); // то же самое, что и
window.alert("Привет");


2. Глобальные переменные, объявленные через var, автоматически становятся частью window в браузере:

var gVar = 5;
alert(window.gVar); // 5


3. Глобальный объект помогает проверить поддержку современных возможностей языка:

if (!window.Promise) {
alert("Ваш браузер очень старый!");
}


Но как быть, если код должен работать и в браузере, и на сервере?
Ключ к решению — globalThis, универсальный объект, который справедлив для любой среды исполнения. Он имеет полную поддержку во всех последних версиях браузеров, и вы также можете использовать его в Node.js 12+. Подробнее можно прочитать здесь: MDN globalThis.

Были ли вы в курсе о globalThis? Поделитесь в комментариях 📬
🔥2👍1



tgoop.com/startpoint_dev/12
Create:
Last Update:

🔍 Вспоминаем наш последний разговор о контексте this в JavaScript и углубляемся в детали глобального объекта! 🌐

Когда мы вызываем такую функцию:


function show() {
console.log(this);
}
show();

результат зависит от режима выполнения кода: в строгом режиме получим undefined, в нестрогом — глобальный объект.

🔹 Что такое глобальный объект?
Это специальный объект, который доступен в любом уголке нашего JavaScript-кода. В браузере он известен как window, в Node.js — как global.

🔸 Как работать с глобальными объектами?
1. Можно обращаться к свойствам глобального объекта напрямую:

alert("Привет"); // то же самое, что и
window.alert("Привет");


2. Глобальные переменные, объявленные через var, автоматически становятся частью window в браузере:

var gVar = 5;
alert(window.gVar); // 5


3. Глобальный объект помогает проверить поддержку современных возможностей языка:

if (!window.Promise) {
alert("Ваш браузер очень старый!");
}


Но как быть, если код должен работать и в браузере, и на сервере?
Ключ к решению — globalThis, универсальный объект, который справедлив для любой среды исполнения. Он имеет полную поддержку во всех последних версиях браузеров, и вы также можете использовать его в Node.js 12+. Подробнее можно прочитать здесь: MDN globalThis.

Были ли вы в курсе о globalThis? Поделитесь в комментариях 📬

BY Настя Котова // Frontend & Node.js


Share with your friend now:
tgoop.com/startpoint_dev/12

View MORE
Open in Telegram


Telegram News

Date: |

Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. But a Telegram statement also said: "Any requests related to political censorship or limiting human rights such as the rights to free speech or assembly are not and will not be considered." ZDNET RECOMMENDS
from us


Telegram Настя Котова // Frontend & Node.js
FROM American