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. Какие существуют типы нод? |