Проект

Общее

Профиль

JAVASCRIPT » История » Версия 2

Александр Александров, 24.04.2019 15:34

1 1 Александр Александров
h1. JAVASCRIPT
2
3
h2. Вопросы
4
5
# Как переадресовать страницу в JavaScript?
6
# Сколько параметров можно передать функции?
7
# Нужно алертом вывести какое-то сообщение, спустя 3 секунды после запуска скрипта. Как это сделать?
8
# Чем отличается наследование в JavaScript от наследования в PHP?
9
# Приведи пример наследования в JavaScript.
10
# Пара слов об объектах в JavaScript?
11
# Что представляет из себя метод объекта в JavaScript?
12
# Зачем в JavaScript перед переменной писать var?
13
# Есть две функции: function f(a,b) { return a+b } и var f = function(a,b) { return a+b }
14
# Есть ли между ними разница? Если есть то какая?
15
# Как создать массив в JavaScript?
16
# Можно ли в JavaScript использовать функцию в качестве конструктора?
17
# Что cделает код: break me_baby; ?
18
# Можно ли задать массив таким образом: var a = “a,b”.split(‘,’)?
19
# Что выведет alert(typeof null); ?
20
# Что выведет alert(null instanceof Object); ?
21
# 0.1+ 0.2 == 0.3 ?
22
# Что выведет alert(typeof NaN); ?
23
# Что выведет alert(NaN === NaN); ?
24
# В чём различие свойств innerHTML и outerHTML?
25
# Какая разница между операторами == и ===?
26
# В чем разница между Object.getOwnPropertyNames() и Object.keys()?
27
# С помощью какой конструкции языка можно управлять потоком выполнения скрипта и отслеживать ошибки?
28
# Почему вызов a(); происходит успешно, а вызов b(); выдает ошибку?
29
# Что такое глобальные переменные ? Как они создаются ? Какие проблемы связаны с использованием глобальных переменных?
30
# Что такое замыкания (closure) в JavaScript?
31
# Напишите функцию принимающую строку с именем файла и возвращающую расширение (фрагмент после последней точки).
32
# Что вернет выражение +new Date()? Чем отличается от Date.now().
33
# Какое значение возвращает данное предложение ~~3.14?
34
# Какое значение возвращает данное предложение?
35
# Что покажут эти два alert?
36
# Чему равно foo.length?
37
# Что такое prototype в javascript?
38
# Какие способы навешивания обработчиков событий вы знаете?
39
# Eсть ли разница между window и document?
40
# Вызываются ли document.onload и window.onload одновременно?
41
# Является ли атрибут (attribute) аналогом свойства (property)?
42
# Как остановить дальнейшее распространение события?
43
# Назовите различные пути для получения элемента из DOM дерева?
44
# Какой наибыстрейший метод для получения элемента через css селектор?
45
# Могу ли я удалить удалить обработчик события с элемента?
46
# Почему querySelectorAll(‘.my-class’) медленнее, чем getElementsByClassName(‘myclass’)?
47
# Почему я не могу использовать forEach или похожий метод массива для NodeList?
48
# Если вам необходимо реализовать getElementByAttribute, как вы будете это делать?
49
# Как бы вы добавили класс к элементу через селектор?
50
# Как я могу запустить обработчик в фазе захвата, а не в фазе всплытия?
51
# Как проверить, что один элемент является дочерним другому?
52
# Какой метод больше всего подходит для создания DOM элемента? Что лучше innerHTML или createElement?
53
# Каким образом можно предотвратить множественный вызов обработчика для одного события?
54
# Что такое reflow?
55
# Как я могу проверить были событие отменено или нет?
56
# Какие причины reflow? Как можно уменьшить reflow?
57
# Что такое repaint и когда оно происходит?
58
# Есть ли что-то такое о чём нужно позаботится при использовании node.cloneNode()?
59
# Как быть уверенным в том, что DOM подготовлен и можно выполнять JavaScript, как реализовать $(document).ready?
60
# Что такое всплытие?
61
# Как можно уничтожить несколько элементов с одним вызовом click?
62
# Как предотвратить нажатие по ссылке?
63
# Создайте кнопку, которая удаляется при нажатии на неё, и создаются две новые кнопки в этом же месте.
64
# Как отлавливать все нажатия на странице?
65
# Как получить весь текст на странице?
66
# Что такое defer и async?
67
# Какие существуют типы нод?
68
69
h2. Ответы
70
71
h3. Как переадресовать страницу в JavaScript?
72
73 2 Александр Александров
{{dmsf_image(323)}}
74
75 1 Александр Александров
h3. Сколько параметров можно передать функции?
76
77 2 Александр Александров
Сколько угодно.
78
79 1 Александр Александров
h3. Нужно алертом вывести какое-то сообщение, спустя 3 секунды после запуска скрипта. Как это сделать?
80
81 2 Александр Александров
Так:
82
83
<pre><code class="javascript">
84
setTimeout(alert("Hello", 3000));
85
</code></pre>
86
87
или так:
88
89
<pre><code class="javascript">
90
setTimeout(functiom() {alert("Hello")}, 3000);
91
</code></pre>
92
93 1 Александр Александров
h3. Чем отличается наследование в JavaScript от наследования в PHP?
94
95 2 Александр Александров
В отличие от PHP, где наследование можно делать одним способом, в JavaScript таких способов много. На уровне языка реализовано наследование на прототипах. В JavaScript каждый объект может иметь ассоциацию с другим объектом - так называемый "прототип" (prototype). В случае, если поиск некоторого свойства (или метода) в исходном объекте заканчивается неудачно, интерпретатор пытается найти одноименное свойство (метод) в его прототипе, затем - в прототипе прототипа и т. д. К примеру, если мы затребовали обращение к obj.prop (или, что абсолютно то же самое, obj['prop']), JavaScript начнет искать свойство prop в самом объекте obj, затем – в прототипе obj, прототипе прототипа obj, и так до конца.
96
97 1 Александр Александров
h3. Приведи пример наследования в JavaScript.
98
99 2 Александр Александров
Например, пусть объект "cat" наследуется от объекта "animal". В наследовании на прототипах это реализуется как ссылка
100
101
<pre><code class="javascript">
102
cat.prototype = animal;
103
</code></pre>
104
105
Или вот чуть более развернутый пример. MyType наследуется от Obj:
106
107
{{dmsf_image(323)}}
108
109 1 Александр Александров
h3. Пара слов об объектах в JavaScript?
110
111 2 Александр Александров
Объекты (они же - ассоциативные массивы, хэши) и работа с ними в JavaScript реализованы не так, как в большинстве языков. Объект в JavaScript представляет собой обычный ассоциативный массив или, иначе говоря, "хэш". Он хранит любые соответствия "ключ => значение" и имеет несколько стандартных методов.
112
113 1 Александр Александров
h3. Что представляет из себя метод объекта в JavaScript?
114
115 2 Александр Александров
Метод объекта в JavaScript - это просто функция, которая добавлена в ассоциативный массив.
116
117 1 Александр Александров
h3. Зачем в JavaScript перед переменной писать var?
118
119 2 Александр Александров
Если создавать переменную через обычное присваивание - будет создана "глобальная переменная". Пример:
120
121
<pre>
122
max = 100;
123
</pre>
124
125
Если создавать переменную с использованием слова var, тогда будет создана "локальная переменная", которая перестаёт существовать после завершения работы функции. Пример:
126
127
<pre>
128
var max = 100;
129
</pre>
130
131 1 Александр Александров
h3. Есть две функции: function f(a,b) { return a+b } и var f = function(a,b) { return a+b }
132 2 Александр Александров
133
Есть, разница в видимости функции. Вариант функции без var виден везде в текущей области видимости. В том числе и до самого определения функции. Вариант с var присваивает функцию переменной, поэтому такая функция видна только после определения.
134 1 Александр Александров
135
h3. Есть ли между ними разница? Если есть то какая?
136
137
h3. Как создать массив в JavaScript?
138
139
h3. Можно ли в JavaScript использовать функцию в качестве конструктора?
140
141
h3. Что cделает код: break me_baby; ?
142
143
h3. Можно ли задать массив таким образом: var a = “a,b”.split(‘,’)?
144
145
h3. Что выведет alert(typeof null); ?
146
147
h3. Что выведет alert(null instanceof Object); ?
148
149
h3. 0.1+ 0.2 == 0.3 ?
150
151
h3. Что выведет alert(typeof NaN); ?
152
153
h3. Что выведет alert(NaN === NaN); ?
154
155
h3. В чём различие свойств innerHTML и outerHTML?
156
157
h3. Какая разница между операторами == и ===?
158
159
h3. В чем разница между Object.getOwnPropertyNames() и Object.keys()?
160
161
h3. С помощью какой конструкции языка можно управлять потоком выполнения скрипта и отслеживать ошибки?
162
163
h3. Почему вызов a(); происходит успешно, а вызов b(); выдает ошибку?
164
165
h3. Что такое глобальные переменные ? Как они создаются ? Какие проблемы связаны с использованием глобальных переменных?
166
167
h3. Что такое замыкания (closure) в JavaScript?
168
169
h3. Напишите функцию принимающую строку с именем файла и возвращающую расширение (фрагмент после последней точки).
170
171
h3. Что вернет выражение +new Date()? Чем отличается от Date.now().
172
173
h3. Какое значение возвращает данное предложение ~~3.14?
174
175
h3. Какое значение возвращает данное предложение?
176
177
h3. Что покажут эти два alert?
178
179
h3. Чему равно foo.length?
180
181
h3. Что такое prototype в javascript?
182
183
h3. Какие способы навешивания обработчиков событий вы знаете?
184
185
h3. Eсть ли разница между window и document?
186
187
h3. Вызываются ли document.onload и window.onload одновременно?
188
189
h3. Является ли атрибут (attribute) аналогом свойства (property)?
190
191
h3. Как остановить дальнейшее распространение события?
192
193
h3. Назовите различные пути для получения элемента из DOM дерева?
194
195
h3. Какой наибыстрейший метод для получения элемента через css селектор?
196
197
h3. Могу ли я удалить удалить обработчик события с элемента?
198
199
h3. Почему querySelectorAll(‘.my-class’) медленнее, чем getElementsByClassName(‘myclass’)?
200
201
h3. Почему я не могу использовать forEach или похожий метод массива для NodeList?
202
203
h3. Если вам необходимо реализовать getElementByAttribute, как вы будете это делать?
204
205
h3. Как бы вы добавили класс к элементу через селектор?
206
207
h3. Как я могу запустить обработчик в фазе захвата, а не в фазе всплытия?
208
209
h3. Как проверить, что один элемент является дочерним другому?
210
211
h3. Какой метод больше всего подходит для создания DOM элемента? Что лучше innerHTML или createElement?
212
213
h3. Каким образом можно предотвратить множественный вызов обработчика для одного события?
214
215
h3. Что такое reflow?
216
217
h3. Как я могу проверить были событие отменено или нет?
218
219
h3. Какие причины reflow? Как можно уменьшить reflow?
220
221
h3. Что такое repaint и когда оно происходит?
222
223
h3. Есть ли что-то такое о чём нужно позаботится при использовании node.cloneNode()?
224
225
h3. Как быть уверенным в том, что DOM подготовлен и можно выполнять JavaScript, как реализовать $(document).ready?
226
227
h3. Что такое всплытие?
228
229
h3. Как можно уничтожить несколько элементов с одним вызовом click?
230
231
h3. Как предотвратить нажатие по ссылке?
232
233
h3. Создайте кнопку, которая удаляется при нажатии на неё, и создаются две новые кнопки в этом же месте.
234
235
h3. Как отлавливать все нажатия на странице?
236
237
h3. Как получить весь текст на странице?
238
239
h3. Что такое defer и async?
240
241
h3. Какие существуют типы нод?
Go to top