Верно ли утверждение?
"Невозможно установить свойства background-color и background-image для одного элемента?
"Невозможно установить свойства background-color и background-image для одного элемента?
Anonymous Quiz
18%
Верно
82%
Неверно
Объясните, почему это не является IIFE:
Что необходимо изменить, чтобы это стало IIFE?
IIFE расшифровывается как Immediately Invoked Function Expression — немедленно вызываемое функциональное выражение.
Синтаксический анализатор JavaScript читает
Выражения, начинающиеся с function, считаются объявлениями функций. Оборачивая эту функцию внутри (), она становится функциональным выражением, которое затем может быть выполнено с последующим (). Подобные функции не отображаются в глобальной области видимости, и вы можете даже не указывать им имя, если вы не будете на них ссылаться.
`function foo(){ }();`?Что необходимо изменить, чтобы это стало IIFE?
IIFE расшифровывается как Immediately Invoked Function Expression — немедленно вызываемое функциональное выражение.
Синтаксический анализатор JavaScript читает
function foo(){ } (); как function foo(){ } и ();, где первое выражение — это объявление функции, а второе (пара скобок) — попытка вызова функции, но так как имя не указано, он выдает ошибку Uncaught SyntaxError: Unexpected token.
Вот два способа исправить это, которые заключаются в добавлении дополнительных скобок: (function foo(){ })() и (function foo(){ }()).Выражения, начинающиеся с function, считаются объявлениями функций. Оборачивая эту функцию внутри (), она становится функциональным выражением, которое затем может быть выполнено с последующим (). Подобные функции не отображаются в глобальной области видимости, и вы можете даже не указывать им имя, если вы не будете на них ссылаться.
Что такое замыкание и как/для чего его используют?
Замыкание — это комбинация функции и лексического окружения, в которой эта функция была объявлена. Слово “лексический” относится к тому факту, что лексическая область видимости использует место, где переменная объявлена в исходном коде, чтобы определить, где эта переменная доступна. Замыкания — это функции, которые имеют доступ к переменным внешней (замыкающей) функции — цепочке областей видимости даже после того, как внешняя функция вернулась.
Для чего его используют?
1. Конфиденциальность данных / эмуляция скрытых методов при помощи замыканий. Обычно используется в модульном паттерне.
2. Частичное применение функций или каррирование.
👉 @frontendInterview
Замыкание — это комбинация функции и лексического окружения, в которой эта функция была объявлена. Слово “лексический” относится к тому факту, что лексическая область видимости использует место, где переменная объявлена в исходном коде, чтобы определить, где эта переменная доступна. Замыкания — это функции, которые имеют доступ к переменным внешней (замыкающей) функции — цепочке областей видимости даже после того, как внешняя функция вернулась.
Для чего его используют?
1. Конфиденциальность данных / эмуляция скрытых методов при помощи замыканий. Обычно используется в модульном паттерне.
2. Частичное применение функций или каррирование.
👉 @frontendInterview
Возможно ли установить больше одной картинки на фон элемента с помощью CSS?
Anonymous Quiz
77%
Да
23%
Нет
В чем разница между `.call` и `.apply`?
Сходство заключается в том, что и .call, и .apply используются для вызова функций, а также первый параметр будет использоваться как значение this внутри функции. А разница в том, что .call в качестве следующих аргументов принимает аргументы, разделенные запятыми, в то время как .apply в качестве следующих аргументов принимает массив аргументов.
👉 @frontendInterview
Сходство заключается в том, что и .call, и .apply используются для вызова функций, а также первый параметр будет использоваться как значение this внутри функции. А разница в том, что .call в качестве следующих аргументов принимает аргументы, разделенные запятыми, в то время как .apply в качестве следующих аргументов принимает массив аргументов.
👉 @frontendInterview
Become A Ninja With Angular
Сегодня почти любое приложение сделано с помощью фреймворка, не потому что это легко: фреймворк предоставляет собственную экосистему, которую также надо изучать, как и язык, - а потому что это эффективно и надёжно. Angular - это популярный JavaScript-фреймворк, архитектурно выполненный в стиле MVC. Настоящее руководство проведёт вас по пути разработки сложного приложения с помощью этого фреймворка.
👉 @frontendInterview
Сегодня почти любое приложение сделано с помощью фреймворка, не потому что это легко: фреймворк предоставляет собственную экосистему, которую также надо изучать, как и язык, - а потому что это эффективно и надёжно. Angular - это популярный JavaScript-фреймворк, архитектурно выполненный в стиле MVC. Настоящее руководство проведёт вас по пути разработки сложного приложения с помощью этого фреймворка.
👉 @frontendInterview
Yes No Yes No
Напишите функцию, которая принимает массив чисел или строк, проходит по нему, забирая элементы через один. После того как все элементы пройдены, начинает проход сначала. В итоге должен получиться новый массив.
Примеры:
👉 @frontendInterview
Напишите функцию, которая принимает массив чисел или строк, проходит по нему, забирая элементы через один. После того как все элементы пройдены, начинает проход сначала. В итоге должен получиться новый массив.
Примеры:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// returns [1, 3, 5, 7, 9, 2, 6, 10, 8, 4]
var arr = ['this', 'code', 'is', 'right', 'the']
// returns ['this', 'is', 'the', 'right', 'code']👉 @frontendInterview
Angular и TypeScript, Сайтостроение для профессионалов
Если вы занимаетесь веб-разработкой — от веб-клиентов до полнофункциональных одностраничных приложений, — то фреймворк Angular будет для вас просто спасением. Этот ультрасовременный инструмент полностью интегрирован со статически типизированным языком TypeScript, который отлично вписывается в экосистему JavaScript.
👉 @frontendInterview
Если вы занимаетесь веб-разработкой — от веб-клиентов до полнофункциональных одностраничных приложений, — то фреймворк Angular будет для вас просто спасением. Этот ультрасовременный инструмент полностью интегрирован со статически типизированным языком TypeScript, который отлично вписывается в экосистему JavaScript.
👉 @frontendInterview
В каких случаях используется `document.write()`?
Когда
В Интернете есть несколько ответов, которые объясняют, что
👉 @frontendInterview
document.write() записывает строку текста в поток документа, открытого при помощи document.open().Когда
document.write() выполняется после загрузки страницы, он вызывает document.open, который очищает весь документ (<head> и <body> будут удалены!) и заменяет содержимое на заданное значение параметра. Подобный подход считается опасным и не рекомендуется его использовать.В Интернете есть несколько ответов, которые объясняют, что
document.write() используется в коде отслеживания или когда вы хотите добавить стили, которые должны работать только при включенном JavaScript. Он даже используется в шаблоне HTML5 для параллельной загрузки скриптов и сохранения порядка выполнения! Тем не менее, я подозреваю, что эти причины могут быть устаревшими, и в наши дни они могут быть достигнуты без использования document.write().👉 @frontendInterview
Что такое Feature detection и feature inference?
Feature detection (определение возможностей браузера)
Определение возможностей браузера заключается в определении, поддерживает ли браузер определенный блок кода - и если нет, то будет выполняться другой код, так что браузер всегда сможет обеспечить работоспособность и предотвратить сбои/ошибки в некоторых браузерах. Например:
Feature inference (предположение возможностей)
Предположение возможностей проверяет на наличие определенных возможностей, как и предыдущий подход, но использует другую функцию, которая предполагает, что определенная возможность уже существует, например:
Feature detection (определение возможностей браузера)
Определение возможностей браузера заключается в определении, поддерживает ли браузер определенный блок кода - и если нет, то будет выполняться другой код, так что браузер всегда сможет обеспечить работоспособность и предотвратить сбои/ошибки в некоторых браузерах. Например:
if ('geolocation' in navigator) {
// Можно использовать navigator.geolocation
} else {
// Обработка отсутствия возможности
}
Modernizr - отличная библиотека для обработки таких функций.Feature inference (предположение возможностей)
Предположение возможностей проверяет на наличие определенных возможностей, как и предыдущий подход, но использует другую функцию, которая предполагает, что определенная возможность уже существует, например:
if (document.getElementsByTagName) {
element = document.getElementById(id);
}
Этот подход не рекомендуется. Первый подход более надежен.Группировка запятыми
Напишите функцию, которая принимает число, преобразует его в строку и разделяет по три цифры запятой.
Пример
👉 @frontendInterview
Напишите функцию, которая принимает число, преобразует его в строку и разделяет по три цифры запятой.
Пример
1 -> "1"
10 -> "10"
100 -> "100"
1000 -> "1,000"
10000 -> "10,000"
100000 -> "100,000"
1000000 -> "1,000,000"
35235235 -> "35,235,235"👉 @frontendInterview
Какое из перечисленных правил создаст диагональный градиент?
Anonymous Quiz
6%
background: linear-gradient(0deg, yellow, red);
26%
background: linear-gradient(90deg, yellow, red);
25%
background: linear-gradient(right top, yellow, red);
44%
background: linear-gradient(to right top, yellow, red);
Что такое строка User Agent?
Это строка, сообщаемая браузером, которая позволяет узлам сетевого протокола определить тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения пользователя от которого исходит запрос.
Доступ к ней можно получить через navigator.userAgent. Тем не менее, строка User Agent сложна для обработки и может быть подделана. Например, браузер Chrome идентифицируется как Chrome, так и Safari.
Таким образом, чтобы обнаружить браузер Safari, вы должны проверить на наличие строки Safari и отсутствие строки Chrome. Избегайте этого метода.
👉 @frontendInterview
Это строка, сообщаемая браузером, которая позволяет узлам сетевого протокола определить тип приложения, операционную систему, поставщика программного обеспечения или версию программного обеспечения пользователя от которого исходит запрос.
Доступ к ней можно получить через navigator.userAgent. Тем не менее, строка User Agent сложна для обработки и может быть подделана. Например, браузер Chrome идентифицируется как Chrome, так и Safari.
Таким образом, чтобы обнаружить браузер Safari, вы должны проверить на наличие строки Safari и отсутствие строки Chrome. Избегайте этого метода.
👉 @frontendInterview