Skip to content

Commit 833f7ba

Browse files
committed
final cleanup regexps
1 parent 59388d0 commit 833f7ba

File tree

132 files changed

+410
-183
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+410
-183
lines changed

1-js/1-getting-started/1-intro/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,13 @@ Adobe Flash -- кросс-браузерная платформа для мул
210210
<ul>
211211
<li>Язык [CoffeeScript](http://coffeescript.org/) -- это "синтаксический сахар" поверх JavaScript, он сосредоточен на большей ясности и краткости кода. Как правило, его особенно любят программисты на Ruby.</li>
212212
<li>Язык [TypeScript](http://www.typescriptlang.org/) сосредоточен на добавлении строгой типизации данных, он предназначен для упрощения разработки и поддержки больших систем. Его разрабатывает MicroSoft.</li>
213-
<li>Язык [Dart](https://www.dartlang.org/) предложен компанией Google как замена JavaScript, но другие ведущие интернет-компании объявили о своей незаинтересованности в Dart. Возможно, в будущем он может составить конкуренцию JS.</li>
213+
<li>Язык [Dart](https://www.dartlang.org/) интересен тем, что он не только транслируется в JavaScript, как и другие языки, но и имеет свою независимую среду выполнения, которая даёт ему ряд возможностей и доступна для встраивания в приложения (вне браузера). Он разрабатывается компанией Google.</li>
214214
</ul>
215215

216216
[smart header="ES6 и ES7 прямо сейчас"]
217217
Существуют также трансляторы, которые берут код, использующий возможности будущих стандартов JavaScript, и преобразуют его в более старый вариант, который понимают все браузеры.
218218

219-
Например, [6to5](https://6to5.org/).
219+
Например, [babeljs](https://babeljs.io/).
220220

221221
Благодаря этому, мы можем использовать многие возможности будущего уже сегодня.
222222
[/smart]

1-js/4-data-structures/10-arguments-pseudoarray/article.md

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -268,72 +268,6 @@ function showWarning(width, height, title, contents) {
268268
}
269269
```
270270

271-
### "Именованные аргументы"
272-
273-
*Именованные аргументы* -- альтернативная техника работы с аргументами, которая вообще не использует `arguments`.
274-
275-
Некоторые языки программирования позволяют передать параметры как-то так: `f(width=100, height=200)`, то есть по именам, а что не передано, тех аргументов нет. Это очень удобно в тех случаях, когда аргументов много, сложно запомнить их порядок и большинство вообще не надо передавать, по умолчанию подойдёт.
276-
277-
Такая ситуация часто встречается в компонентах интерфейса. Например, у "меню" может быть масса настроек отображения, которые можно "подкрутить" но обычно нужно передать всего один-два главных параметра, а остальные возьмутся по умолчанию.
278-
279-
В JavaScript для этих целей используется передача аргументов в виде объекта, а в его свойствах мы передаём параметры.
280-
281-
Получается так:
282-
283-
```js
284-
function showWarning(options) {
285-
var width = options.width || 200; // по умолчанию
286-
var height = options.height || 100;
287-
288-
var title = options.title || "Предупреждение";
289-
290-
// ...
291-
}
292-
293-
showWarning({
294-
```
295-
296-
Вызвать такую функцию очень легко. Достаточно передать объект аргументов, указав в нем только нужные:
297-
298-
```js
299-
showWarning({
300-
contents: "Вы вызвали функцию" // и всё понятно!
301-
});
302-
```
303-
304-
Сравним это с передачей аргументов через список:
305-
306-
```js
307-
showWarning(null, null, "Предупреждение!");
308-
// мысль программиста "а что это за null, null в начале? ох, надо глядеть описание функции"
309-
```
310-
311-
Не правда ли, объект -- гораздо проще и понятнее?
312-
313-
Еще один бонус кроме красивой записи -- возможность повторного использования объекта аргументов:
314-
315-
```js
316-
var opts = {
317-
width: 400,
318-
height: 200,
319-
contents: "Текст"
320-
};
321-
322-
showWarning(opts);
323-
324-
opts.contents = "Другой текст";
325-
326-
*!*
327-
showWarning(opts); // вызвать с новым текстом, без копирования других аргументов
328-
*/!*
329-
```
330-
331-
Именованные аргументы применяются во многих JavaScript-фреймворках.
332-
333-
334-
335-
336-
337271
## Устаревшее свойство arguments.callee [#arguments-callee]
338272

339273
[warn header="Используйте NFE вместо `arguments.callee`"]
@@ -407,6 +341,72 @@ function f3() {
407341

408342
В учебнике мы это свойство также не будем использовать.
409343

344+
345+
## "Именованные аргументы"
346+
347+
*Именованные аргументы* -- альтернативная техника работы с аргументами, которая вообще не использует `arguments`.
348+
349+
Некоторые языки программирования позволяют передать параметры как-то так: `f(width=100, height=200)`, то есть по именам, а что не передано, тех аргументов нет. Это очень удобно в тех случаях, когда аргументов много, сложно запомнить их порядок и большинство вообще не надо передавать, по умолчанию подойдёт.
350+
351+
Такая ситуация часто встречается в компонентах интерфейса. Например, у "меню" может быть масса настроек отображения, которые можно "подкрутить" но обычно нужно передать всего один-два главных параметра, а остальные возьмутся по умолчанию.
352+
353+
В JavaScript для этих целей используется передача аргументов в виде объекта, а в его свойствах мы передаём параметры.
354+
355+
Получается так:
356+
357+
```js
358+
function showWarning(options) {
359+
var width = options.width || 200; // по умолчанию
360+
var height = options.height || 100;
361+
362+
var title = options.title || "Предупреждение";
363+
364+
// ...
365+
}
366+
367+
showWarning({
368+
```
369+
370+
Вызвать такую функцию очень легко. Достаточно передать объект аргументов, указав в нем только нужные:
371+
372+
```js
373+
showWarning({
374+
contents: "Вы вызвали функцию" // и всё понятно!
375+
});
376+
```
377+
378+
Сравним это с передачей аргументов через список:
379+
380+
```js
381+
showWarning(null, null, "Предупреждение!");
382+
// мысль программиста "а что это за null, null в начале? ох, надо глядеть описание функции"
383+
```
384+
385+
Не правда ли, объект -- гораздо проще и понятнее?
386+
387+
Еще один бонус кроме красивой записи -- возможность повторного использования объекта аргументов:
388+
389+
```js
390+
var opts = {
391+
width: 400,
392+
height: 200,
393+
contents: "Текст"
394+
};
395+
396+
showWarning(opts);
397+
398+
opts.contents = "Другой текст";
399+
400+
*!*
401+
showWarning(opts); // вызвать с новым текстом, без копирования других аргументов
402+
*/!*
403+
```
404+
405+
Именованные аргументы применяются во многих JavaScript-фреймворках.
406+
407+
408+
409+
410410
## Итого
411411
412412
<ul>

1-js/9-prototypes/5-class-inheritance/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,5 +354,5 @@ function Rabbit() {
354354

355355
...Которой нет в прототипном подходе, потому что в процессе создания `new Rabbit` мы вовсе не обязаны вызывать конструктор родителя. Ведь методы находятся в прототипе.
356356

357-
Поэтому прототипный подход стоит предпочитать функциональному как более быстрый и универсальный. А что касается красоты синтаксиса -- она сильно лучше в новом стандарте ES6, которым можно пользоваться уже сейчас, если взять транслятор [6to5](http://6to5.org/).
357+
Поэтому прототипный подход стоит предпочитать функциональному как более быстрый и универсальный. А что касается красоты синтаксиса -- она сильно лучше в новом стандарте ES6, которым можно пользоваться уже сейчас, если взять транслятор [babeljs](https://babeljs.io/).
358358

1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)