JAVASCRIPT » История » Редакция 3
« Предыдущее |
Редакция 3/5
(Разница(diff))
| Следующее »
Александр Александров, 24.04.2019 16:31
JAVASCRIPT¶
Вопросы¶
- Как переадресовать страницу в JavaScript?
- Сколько параметров можно передать функции?
- Нужно алертом вывести какое-то сообщение, спустя 3 секунды после запуска скрипта. Как это сделать?
- Чем отличается наследование в JavaScript от наследования в PHP?
- Приведи пример наследования в JavaScript.
- Пара слов об объектах в JavaScript?
- Что представляет из себя метод объекта в JavaScript?
- Зачем в JavaScript перед переменной писать var?
- Есть две функции: function f(a,b) { return a+b } и var f = function(a,b) { return a+b } Есть ли между ними разница? Если есть то какая?
- Как создать массив в JavaScript?
- Можно ли в JavaScript использовать функцию в качестве конструктора?
- Сколько и какие конструкции для циклов есть в JAVASCRIPT?
- Что cделает код: break mark; ?
- Можно ли задать массив таким образом: var a = “a,b”.split(‘,’)?
- Что выведет alert(typeof null); ?
- Что выведет alert(null instanceof Object); ?
- 0.1+ 0.2 0.3 ?
- Что выведет alert(typeof NaN); ?
- Что выведет alert(NaN = NaN); ?
- В чём различие свойств innerHTML и outerHTML?
- Какая разница между операторами и =?
- В чем разница между Object.getOwnPropertyNames() и Object.keys()?
- С помощью какой конструкции языка можно управлять потоком выполнения скрипта и отслеживать ошибки?
- Почему вызов a(); происходит успешно, а вызов b(); выдает ошибку?
- Что такое глобальные переменные ? Как они создаются ? Какие проблемы связаны с использованием глобальных переменных?
- Что такое замыкания (closure) в JavaScript?
- Напишите функцию принимающую строку с именем файла и возвращающую расширение (фрагмент после последней точки).
- Что вернет выражение +new Date()? Чем отличается от Date.now().
- Какое значение возвращает данное предложение ~~3.14?
- Какое значение возвращает данное предложение?
- Что покажут эти два alert?
- Чему равно foo.length?
- Что такое prototype в javascript?
- Какие способы навешивания обработчиков событий вы знаете?
- Eсть ли разница между window и document?
- Вызываются ли document.onload и window.onload одновременно?
- Является ли атрибут (attribute) аналогом свойства (property)?
- Как остановить дальнейшее распространение события?
- Назовите различные пути для получения элемента из DOM дерева?
- Какой наибыстрейший метод для получения элемента через css селектор?
- Могу ли я удалить удалить обработчик события с элемента?
- Почему querySelectorAll(‘.my-class’) медленнее, чем getElementsByClassName(‘myclass’)?
- Почему я не могу использовать forEach или похожий метод массива для NodeList?
- Если вам необходимо реализовать getElementByAttribute, как вы будете это делать?
- Как бы вы добавили класс к элементу через селектор?
- Как я могу запустить обработчик в фазе захвата, а не в фазе всплытия?
- Как проверить, что один элемент является дочерним другому?
- Какой метод больше всего подходит для создания DOM элемента? Что лучше innerHTML или createElement?
- Каким образом можно предотвратить множественный вызов обработчика для одного события?
- Что такое reflow?
- Как я могу проверить были событие отменено или нет?
- Какие причины reflow? Как можно уменьшить reflow?
- Что такое repaint и когда оно происходит?
- Есть ли что-то такое о чём нужно позаботится при использовании node.cloneNode()?
- Как быть уверенным в том, что DOM подготовлен и можно выполнять JavaScript, как реализовать $(document).ready?
- Что такое всплытие?
- Как можно уничтожить несколько элементов с одним вызовом click?
- Как предотвратить нажатие по ссылке?
- Создайте кнопку, которая удаляется при нажатии на неё, и создаются две новые кнопки в этом же месте.
- Как отлавливать все нажатия на странице?
- Как получить весь текст на странице?
- Что такое defer и async?
- Какие существуют типы нод?
Ответы¶
Как переадресовать страницу в JavaScript?¶
Сколько параметров можно передать функции?¶
Сколько угодно.
Нужно алертом вывести какое-то сообщение, спустя 3 секунды после запуска скрипта. Как это сделать?¶
Так:
setTimeout(alert("Hello", 3000));
или так:
setTimeout(functiom() {alert("Hello")}, 3000);
Чем отличается наследование в JavaScript от наследования в PHP?¶
В отличие от PHP, где наследование можно делать одним способом, в JavaScript таких способов много. На уровне языка реализовано наследование на прототипах. В JavaScript каждый объект может иметь ассоциацию с другим объектом - так называемый "прототип" (prototype). В случае, если поиск некоторого свойства (или метода) в исходном объекте заканчивается неудачно, интерпретатор пытается найти одноименное свойство (метод) в его прототипе, затем - в прототипе прототипа и т. д. К примеру, если мы затребовали обращение к obj.prop (или, что абсолютно то же самое, obj['prop']), JavaScript начнет искать свойство prop в самом объекте obj, затем – в прототипе obj, прототипе прототипа obj, и так до конца.
Приведи пример наследования в JavaScript.¶
Например, пусть объект "cat" наследуется от объекта "animal". В наследовании на прототипах это реализуется как ссылка
cat.prototype = animal;
Или вот чуть более развернутый пример. MyType наследуется от Obj:
Пара слов об объектах в JavaScript?¶
Объекты (они же - ассоциативные массивы, хэши) и работа с ними в JavaScript реализованы не так, как в большинстве языков. Объект в JavaScript представляет собой обычный ассоциативный массив или, иначе говоря, "хэш". Он хранит любые соответствия "ключ => значение" и имеет несколько стандартных методов.
Что представляет из себя метод объекта в JavaScript?¶
Метод объекта в JavaScript - это просто функция, которая добавлена в ассоциативный массив.
Зачем в JavaScript перед переменной писать var?¶
Если создавать переменную через обычное присваивание - будет создана "глобальная переменная". Пример:
max = 100;
Если создавать переменную с использованием слова var, тогда будет создана "локальная переменная", которая перестаёт существовать после завершения работы функции. Пример:
var max = 100;
Есть две функции: function f(a,b) { return a+b } и var f = function(a,b) { return a+b } Есть ли между ними разница? Если есть то какая?¶
Есть, разница в видимости функции. Вариант функции без var виден везде в текущей области видимости. В том числе и до самого определения функции. Вариант с var присваивает функцию переменной, поэтому такая функция видна только после определения.
Как создать массив в JavaScript?¶
Вот несколько способов.
Можно ли в JavaScript использовать функцию в качестве конструктора?¶
Вот так:
Сколько и какие конструкции для циклов есть в JAVASCRIPT?¶
Три: for, while и do...while.
Что cделает код: break mark; ?¶
Выйдет из текущего блока цикла или switch на метку "mark".
Можно ли задать массив таким образом: var a = “a,b”.split(‘,’)?¶
Да, можно.
Что выведет alert(typeof null); ?¶
Выведет сообщение "object".
Что выведет alert(null instanceof Object); ?¶
Выведет сообщение "false".
0.1+ 0.2 0.3 ?¶
Нет, т.к. вычисленное значение будет равно 0.30000000000000004. Это действие точности вычислений и проявляется она не только в JavaScript
Что выведет alert(typeof NaN); ?¶
"Number"
Что выведет alert(NaN = NaN); ?¶
"false"
В чём различие свойств innerHTML и outerHTML?¶
Свойство любого DOM элемента innerHTML содержит HTML код, который находится внутри этого элемента. При установке нового значения этого свойства, внутренний HTML код рендерится браузером заново. outerHTML почти аналогичен innerHTML, разница в том, что он возвращает полный HTML элемента. Также, важно отметить, что innerHTML поддерживается всеми современными браузерами, а outerHTML поддерживается в IE (с некоторыми отличиями от остальных браузеров), в последних версиях Opera, и в браузерах на основе последних WebKit (Safari, Chrome), но не поддерживается в Firefox.
Для кода:
innerHTML возвратит:
<p class="inner"></p>
outerHTML возвратит:
<div class="outer"><p class="inner"></p></div>
Какая разница между операторами и =?¶
Оператор сравнивает на равенство, а вот = сравнивает на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.
В чем разница между Object.getOwnPropertyNames() и Object.keys()?¶
Object.getOwnPropertyNames() возвращает перечислимые и не перечислимые свойства из объекта или массива.
Object.keys() возвращает перечислимые свойства из объекта или массива
С помощью какой конструкции языка можно управлять потоком выполнения скрипта и отслеживать ошибки?¶
Это возможно с помощью конструкции try{}... catch{}
Почему вызов a(); происходит успешно, а вызов b(); выдает ошибку?¶
Функция а() инициализируется на этапе загрузки скрипта, как бы "всплывает вверх" а функция б инициализируется, когда объявляется переменная b
Что такое глобальные переменные ? Как они создаются ? Какие проблемы связаны с использованием глобальных переменных?¶
Что такое замыкания (closure) в JavaScript?¶
Напишите функцию принимающую строку с именем файла и возвращающую расширение (фрагмент после последней точки).¶
Что вернет выражение +new Date()? Чем отличается от Date.now().¶
Какое значение возвращает данное предложение ~~3.14?¶
Какое значение возвращает данное предложение?¶
Что покажут эти два alert?¶
Чему равно foo.length?¶
Что такое prototype в javascript?¶
Какие способы навешивания обработчиков событий вы знаете?¶
Eсть ли разница между window и document?¶
Вызываются ли document.onload и window.onload одновременно?¶
Является ли атрибут (attribute) аналогом свойства (property)?¶
Как остановить дальнейшее распространение события?¶
Назовите различные пути для получения элемента из DOM дерева?¶
Какой наибыстрейший метод для получения элемента через css селектор?¶
Могу ли я удалить удалить обработчик события с элемента?¶
Почему querySelectorAll(‘.my-class’) медленнее, чем getElementsByClassName(‘myclass’)?¶
Почему я не могу использовать forEach или похожий метод массива для NodeList?¶
Если вам необходимо реализовать getElementByAttribute, как вы будете это делать?¶
Как бы вы добавили класс к элементу через селектор?¶
Как я могу запустить обработчик в фазе захвата, а не в фазе всплытия?¶
Как проверить, что один элемент является дочерним другому?¶
Какой метод больше всего подходит для создания DOM элемента? Что лучше innerHTML или createElement?¶
Каким образом можно предотвратить множественный вызов обработчика для одного события?¶
Что такое reflow?¶
Как я могу проверить были событие отменено или нет?¶
Какие причины reflow? Как можно уменьшить reflow?¶
Что такое repaint и когда оно происходит?¶
Есть ли что-то такое о чём нужно позаботится при использовании node.cloneNode()?¶
Как быть уверенным в том, что DOM подготовлен и можно выполнять JavaScript, как реализовать $(document).ready?¶
Что такое всплытие?¶
Как можно уничтожить несколько элементов с одним вызовом click?¶
Как предотвратить нажатие по ссылке?¶
Создайте кнопку, которая удаляется при нажатии на неё, и создаются две новые кнопки в этом же месте.¶
Как отлавливать все нажатия на странице?¶
Как получить весь текст на странице?¶
Что такое defer и async?¶
Какие существуют типы нод?¶
Обновлено Александр Александров больше 5 лет назад · 3 изменени(я, ий)
Go to top