fix(guide): simplify directory structure

This commit is contained in:
Mrugesh Mohapatra
2018-10-16 21:26:13 +05:30
parent f989c28c52
commit da0df12ab7
35752 changed files with 0 additions and 317652 deletions

View File

@@ -0,0 +1,61 @@
---
title: Compare Scopes of the var and let Keywords
localeTitle: Сравните области действия переменных var и let
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Нам нужно изменить `var` , чтобы `let` в нашей области видимости функции и добавить `let` нашему блочной области.
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Найдите `var` и замените `let` .
> _попытаться решить проблему сейчас_
* Добавьте `let` к переменной `i` внутри вашего оператора if.
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
function checkScope() {
"use strict";
let i = "function scope";
if (true) {
let i = "block scope";
console.log("Block scope i is: ", i);
}
console.log("Function scope i is: ", i);
return i;
}
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/wxwxRd)
# Код Объяснение:
Используя `let` вы можете объявлять переменные в зависимости от их объема.
#### Связанные ссылки
* [позволять](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.

View File

@@ -0,0 +1,21 @@
---
title: Create an Export Fallback with export default
localeTitle: Создание экспортного возврата с экспортом по умолчанию
---
## Создание экспортного возврата с экспортом по умолчанию
Что такое запасная стоимость? В основном по умолчанию код будет возвращаться, если ничего не было установлено. Например, переменные имеют значение возврата по умолчанию для `undefined` . Это, как говорится, намек на этот вызов!
## Подсказка 1:
Просто добавьте `export default` в начало функции.
## Оповещение о спойлере - решение впереди!
## Решение:
```javascript
"use strict";
export default function subtract(x,y) {return x - y;}
```

View File

@@ -0,0 +1,37 @@
---
title: Create Strings Using Template Literals
localeTitle: Создание строк с использованием литералов шаблонов
---
Вместо использования конкатенации строк ES6 предлагает шаблонные литералы для создания строк. В этой задаче вам нужно использовать литералы шаблонов для создания массива текстовых предупреждений.
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу и написать собственный код.
### Проблема Объяснение:
Требуется использовать литералы шаблонов, чтобы возвращать список как каждый элемент в массиве, поскольку этот элемент будет обернут `<li></li>` .
## Подсказка: 1
* Используйте функцию `map()` для применения шаблонных литералов во всех элементах `arr`
> _попытаться решить проблему сейчас_
## Подсказка: 2
* Внутри `map()` используйте функцию стрелки, которая имеет `element` как параметр и возвращает `<li></li>` который имеет класс предупреждения текста и содержащий `element` внутри него
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
``const resultDisplayArray = arr.map(item => `<li class="text-warning">${item}</li>`);``
## Нет решения map ()
Несмотря на то, что это менее гибкое решение, если вы знаете количество элементов заранее, вы можете перечислить их, как в
``const resultDisplayArray = [`<li class="text-warning">${arr[0]}</li>`, `<li class="text-warning">${arr[1]}</li>` ,`<li class="text-warning">${arr[2]}</li>`];``

View File

@@ -0,0 +1,68 @@
---
title: Declare a Read-Only Variable with the const Keyword
localeTitle: Объявлять переменную только для чтения с помощью ключевого слова const
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Измените все переменные, чтобы `let` или `const` и переименовать `sentence` .
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Заменить `var` для строки с только для чтения `const` .
> _попытаться решить проблему сейчас_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Заменить `var` в `for` цикла , чтобы `let` .
> _попытаться решить проблему сейчас_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Общее соглашение - это имя `const` переменных со всеми CAPS.
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
function printManyTimes(str) {
"use strict";
const SENTENCE = str + " is cool!";
for(let i = 0; i < str.length; i+=2) {
console.log(SENTENCE);
}
}
printManyTimes("freeCodeCamp");
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/OwVxyx)
# Код Объяснение:
Используя `const` в `sentence` мы можем сделать его доступным только для чтения и используя `let` внутри `i` внутри цикла for, мы можем избежать использования `var` all together. Для дополнительной ясности кода мы также можем изменить `sentence` для `SENTENCE` чтобы показать, что оно является константой.
#### Связанные ссылки
* [Const](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)
* [позволять](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.

View File

@@ -0,0 +1,58 @@
---
title: Explore Differences Between the var and let Keywords
localeTitle: Исследуйте различия между ключевыми словами var и let
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Нам нужно изменить каждый `var` чтобы `let` наш код.
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Найдите каждый `var` и замените `let` .
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
let catName;
let quote;
function catTalk() {
"use strict";
catName = "Oliver";
quote = catName + " says Meow!";
}
catTalk();
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/eKqoGY)
# Код Объяснение:
Используя `let` вместо `var` мы можем избежать переопределения `catName` и `quote` .
#### Связанные ссылки
* [вар](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)
* [позволять](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.

View File

@@ -0,0 +1,22 @@
---
title: Import a Default Export
localeTitle: Импорт экспорта по умолчанию
---
## Импорт экспорта по умолчанию
Импорт значения экспорта по умолчанию почти такой же, как импорт обычного экспорта; вам просто не нужны фигурные скобки для определения имени того, что вы импортируете из файла!
## Подсказка 1:
Заполните пробелы: `import _ from "file-name"` . Подключите имя вашего модуля (которое `subtract` ) в `_` и поместите `"math-functions"` в `"file-name"` .
## Оповещение о спойлере - решение впереди!
## Решение:
```javascript
"use strict";
import subtract from "math_functions";
subtract(7,4);
```

View File

@@ -0,0 +1,11 @@
---
title: ES6
localeTitle: ES6
---
## ES6
Это заглушка. [Помогите нашему сообществу расширить его](https://github.com/freecodecamp/guides/tree/master/src/pages/mathematics/quadratic-equations/index.md) .
[Это руководство по быстрому стилю поможет вам принять ваш запрос на тягу](https://github.com/freecodecamp/guides/blob/master/README.md) .
#### Дополнительная информация:

View File

@@ -0,0 +1,62 @@
---
title: Mutate an Array Declared with const
localeTitle: Мутате массив, объявленный с константой
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Переназначить значения переменной `const` `s` использованием различного назначения элементов.
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Вы можете изменить значения массива на `const` как вы можете, с помощью `var` или `let` .
> _попытаться решить проблему сейчас_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Чтобы получить доступ к массиву, используйте массив \[index\]
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
const s = [5, 7, 2];
function editInPlace() {
"use strict";
s[0] = 2;
s[1] = 5;
s[2] = 7;
}
editInPlace();
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/djoVjW)
# Код Объяснение:
Попытка переназначить `const` переменную только для чтения вызовет ошибку, но с помощью различного назначения элементов вы можете получить доступ и изменить значение массива так же, как и с `let` или `var` .
#### Связанные ссылки
* [Const](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)
* [массив](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.

View File

@@ -0,0 +1,64 @@
---
title: Prevent Object Mutation
localeTitle: Предотвращение мутации объектов
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Нам нужно предотвратить `MATH_CONSTANTS` значения `MATH_CONSTANTS` .
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Используйте Object.freeze (obj), чтобы предотвратить изменение объекта.
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
function freezeObj() {
"use strict";
const MATH_CONSTANTS = {
PI: 3.14
};
Object.freeze(MATH_CONSTANTS);
try {
MATH_CONSTANTS.PI = 99;
} catch( ex ) {
console.log(ex);
}
return MATH_CONSTANTS.PI;
}
const PI = freezeObj();
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/OwVxYB)
# Код Объяснение:
Используя Object.freeze () в `MATH_CONSTANTS` мы можем избежать манипулирования им.
#### Связанные ссылки
* [Object.freeze ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.

View File

@@ -0,0 +1,72 @@
---
title: Set Default Parameters for Your Functions
localeTitle: Установка параметров по умолчанию для ваших функций
---
## Установка параметров по умолчанию для ваших функций
: треугольный _флаг_ в _сообщении: не забудьте использовать Read-Search-Ask, если вы застряли. Попробуйте пара программ:_ busts in\_silhouette: и напишите свой собственный код: карандаш:
### : checkered\_flag: Проблема Объяснение:
```javascript
const increment = (function() {
"use strict";
return function increment(number, value) {
return number + value;
};
})();
console.log(increment(5, 2)); // returns 7
console.log(increment(5)); // returns NaN
```
Мы будем изменять функцию приращения, чтобы по умолчанию параметр **числа** увеличивался на 1, установив **значение** в 1, если значение для **значения** не передается в функцию приращения.
### : speech\_balloon: Подсказка: 1
Определим, где **значение** параметра находится в JS-функции
попытаться решить проблему сейчас
### : speech\_balloon: Подсказка: 2
Установите **значение,** равное чему-то, чтобы оно было по умолчанию
попытаться решить проблему сейчас
### Осторожно, спойлеры!
![спойлер](http://discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
Решение впереди!
## : начинающий: базовый код Решение:
```javascript
const increment = (function() {
"use strict";
return function increment(number, value = 1) {
return number + value;
};
})();
console.log(increment(5, 2)); // returns 7
console.log(increment(5)); // returns NaN
```
: ракета: [Код запуска](https://repl.it/@RyanPisuena/PleasingFumblingThings)
## Обозначение кода
* Этот раздел довольно прост. Пропустите этот раздел, установив значение параметра **значение** , равное 1. Если функция попадается тестовых случаев , когда **значение** не прошло ничего, то **значение** будет присвоено одно по умолчанию.
Полезные ссылки:
[Параметры по умолчанию Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters)
# : буфер обмена: ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* : warning: НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше, попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - Basic, Intermediate и Advanced. :светофор:
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое. (: предупреждение: НЕ удалять существующие имена пользователей)
См.: Point\_right: [Wiki Challenge Solution Шаблон](https://forum.freecodecamp.org/t/freecodecamp-algorithm-challenge-template-guide/14272) для справки.

View File

@@ -0,0 +1,24 @@
---
title: Understand the Differences Between import and require
localeTitle: Понимание различий между импортом и требованием
---
## Понимание различий между импортом и требованием
Давайте поясним: `require()` загружает весь файл и его компоненты (функции, переменные), а `import _ from` позволяет вам выбирать, какие компоненты вы хотите.
На этом занятии вам поручено импортировать функцию `capitalizeStrings()` , которая поступает из файла `"string-functions"` .
## Подсказка 1:
Заполните пробелы: `import { function_name } from "file_name"` . Имя вашей функции - `capitalizeStrings` , а ваше имя файла - `"string-functions"` .
## Оповещение о спойлере - решение впереди!
## Решение
```javascript
"use strict";
import { capitalizeString } from "string-functions";
capitalizeString("hello!");
```

View File

@@ -0,0 +1,21 @@
---
title: Use * to Import Everything from a File
localeTitle: Используйте *, чтобы импортировать все из файла
---
## Используйте \*, чтобы импортировать все из файла
Если вы хотите импортировать все возможное из файла, вы используете `import * as _ from` синтаксиса, предоставляемого ES6. Это именно то, что вам поручено делать в этой задаче!
## Подсказка 1:
Заполните пробелы: `import * as objName from "file-name"` . Вы можете быть творческим с вашим `objName` , но ваше имя файла должно быть `capitalize_strings` .
## Оповещение о спойлере - решение впереди!
## Решение:
```javascript
"use strict";
import * as str from "capitalize_strings";
```

View File

@@ -0,0 +1,30 @@
---
title: Use Arrow Functions to Write Concise Anonymous Functions
localeTitle: Используйте функции стрелок для записи сжатых анонимных функций
---
## Используйте функции стрелок для записи сжатых анонимных функций
Опять же, ES6 все о том, чтобы сделать JavaScript более элегантным, а для некоторых - более читаемым.
Анонимные функции, как указано, могут быть созданы, когда вы уверены, что функция не будет вызываться по имени в другом месте.
## Подсказка 1:
Избавьтесь от `function` ключевого слова и включите эту стрелку `=>` .
## Подсказка 2:
Вы избавились от ключевого слова `var` ?
## Оповещение о спойлере - решение впереди!
## Решение
```javascript
const magic = () => {
"use strict";
return new Date();
};
```
Пока вы избавились от ключевого слова `var` , вы в порядке.

View File

@@ -0,0 +1,58 @@
---
title: Use class Syntax to Define a Constructor Function
localeTitle: Использовать синтаксис класса для определения функции конструктора
---
## Использовать синтаксис класса для определения функции конструктора
В этом уроке вы определяете объект Vegetable с использованием синтаксиса класса.
## Подсказка 1:
Создайте класс под названием `Vegetable` . Он будет содержать необходимые сведения об объекте `Vegetable` .
## Подсказка 2:
Поместите конструктор с параметром с именем `name` и установите его в `this.name` .
## Оповещение о спойлере - решение впереди!
## Решение:
```javascript
function makeClass() {
"use strict";
/* Alter code below this line */
class Vegetable {
constructor(name){
this.name = name;
}
}
/* Alter code above this line */
return Vegetable;
}
```
\=======
Предупреждение о спойлере: вот базовое решение этой проблемы, если вы застряли.
```javascript
function makeClass() {
"use strict";
/* Alter code below this line */
class Vegetable {
constructor(Vegetable){
this.Vegetable = Vegetable;
}
}
/* Alter code above this line */
return Vegetable;
}
const Vegetable = makeClass();
const carrot = new Vegetable('carrot');
console.log(carrot.name); // => should be 'carrot'
```

View File

@@ -0,0 +1,14 @@
---
title: Use Destructuring Assignment to Assign Variables from Arrays
localeTitle: Использование назначения назначения для назначения переменных из массивов
---
## Использование назначения назначения для назначения переменных из массивов
В этом случае мы должны принять некоторые меры предосторожности.
1. Нет необходимости в const \[b, a\], так как это будет иметь эффект локального назначения.
2. const \[b, a\] = \[a, b\] приведет к тому, что значение a, b будет определено как неопределенное (правило простого присваивания слева направо).
Следовательно, решение этой проблемы \[b, a\] = \[a, b\]

View File

@@ -0,0 +1,18 @@
---
title: Use Destructuring Assignment to Assign Variables from Nested Objects
localeTitle: Назначение Destructuring для назначения переменных из вложенных объектов
---
## Назначение Destructuring для назначения переменных из вложенных объектов
Совет для прохождения окончательного теста: использовалось _вложенное деструктурирование_
Тест требует, чтобы вы получили только `max` и `max` . Если вы разрушаете константу, которая содержит как `max` и `min` , тест будет терпеть неудачу.
## Спойлер!
Вот решение кода:
```javascript
const { tomorrow: { max: maxOfTomorrow } } = forecast;
```

View File

@@ -0,0 +1,22 @@
---
title: Use Destructuring Assignment to Assign Variables from Objects
localeTitle: Использование назначения назначения для назначения переменных из объектов
---
## Использование назначения назначения для назначения переменных из объектов
# Эта задача требует некоторой интуиции о строковых объектах в javascript.
Когда вы создаете строковый объект, он основан на следующем [прототипе строки](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype) .
Таким образом, каждая строка имеет свойство length; genericString = {длина: 13}. (Это единственное принятое свойство из String.prototype.)
# Переназначить свойства с помощью деконструкции.
```javascript
var basicOjb = {x: 40};
//To reassign 'get the value of the x property of basicObj and place its value into bigX' in ES6:
const { x: bigX } = basicOjb;
consle.log(bigX) // ans = 40
```
Поместите значение свойства length 'str' в len.

View File

@@ -0,0 +1,50 @@
---
title: Use Destructuring Assignment to Pass an Object as a Function's Parameters
localeTitle: Назначение Destructuring для передачи объекта в качестве параметра функции
---
## Назначение Destructuring для передачи объекта в качестве параметра функции
Вы можете передать весь объект, а затем выбрать нужные вам атрибуты, используя `.` оператор. Но ES6 предлагает более элегантный вариант!
## Подсказка 1:
Избавьтесь от `stats` и посмотрите, можете ли вы ее разрушить. Нам нужно `max` и `min` в `stats` .
## Предупреждение о спойлере - решения впереди!
## Решение 1:
```javascript
const half = (function() {
"use strict"; // do not change this line
// change code below this line
return function half({max, min}) {
// use function argument destructuring
return (max + min) / 2.0;
};
// change code above this line
})();
```
Обратите внимание, что мы разрушаем `stats` чтобы передать две ее атрибуты - `max` и `min` - в функцию. Не забудьте изменить второй оператор возврата. Измените `stats.max` на `max` и измените `stats.min` на `min` .
## Решение 2:
Вот еще одно решение, которое работает. Не большая разница, кроме того, что функция не имеет имени.
```javascript
const half = (function() {
"use strict"; // do not change this line
// change code below this line
return (({max, min}) => {
// use function argument destructuring
return (max + min) / 2.0;
});
// change code above this line
})();
```

View File

@@ -0,0 +1,72 @@
---
title: Use Destructuring Assignment with the Rest Operator to Reassign Array Elements
localeTitle: Назначение Destructuring с оператором Rest для переназначения элементов массива
---
## Назначение Destructuring с оператором Rest для переназначения элементов массива
Помните, что оператор rest допускает переменное количество аргументов. В этой задаче вам нужно избавиться от первых двух элементов массива.
## Подсказка 1:
Назначьте первые два элемента двум случайным величинам.
## Подсказка 2:
Задайте оставшуюся часть массива `...arr` .
\=======
## Подсказка 1
Используйте деструктурирование для создания переменной `arr` .
```javascript
function removeFirstTwo(list) {
"use strict";
// change code below this line
const [arr] = list; // change this
// change code above this line
return arr;
}
```
## Подсказка 2
Распределите параметр `list` в `arr` .
```javascript
function removeFirstTwo(list) {
"use strict";
// change code below this line
const [...arr] = list; // change this
// change code above this line
return arr;
}
```
## Подсказка 3
Исключить первые два элемента `arr` массив с `,,` .
```javascript
function removeFirstTwo(list) {
"use strict";
// change code below this line
const [,,...arr] = list; // change this
// change code above this line
return arr;
}
```
## Оповещение о спойлере - решение впереди!
```javascript
function removeFirstTwo(list) {
"use strict";
// change code below this line
const [a, b, ...arr] = list;
// change code above this line
return arr;
}
```

View File

@@ -0,0 +1,24 @@
---
title: Use export to Reuse a Code Block
localeTitle: Использовать экспорт для повторного использования блока кода
---
## Использовать экспорт для повторного использования блока кода
Мы узнали, как импортировать материал из другого файла. Но есть улов. Вы можете импортировать только файлы, **экспортированные** из этого другого файла.
Ваша задача - экспортировать `foo` и `bar` .
## Подсказка 1:
Просто добавьте экспорт перед ними!
## Оповещение о спойлере - решение впереди!
## Решение
```javascript
"use strict";
export const foo = "bar";
export const bar = "foo";
```

View File

@@ -0,0 +1,50 @@
---
title: Use getters and setters to Control Access to an Object
localeTitle: Использовать геттеры и сеттеры для контроля доступа к объекту
---
## Использовать геттеры и сеттеры для контроля доступа к объекту
Геттеры и сеттеры являются критическими частями класса / объекта. Они позволяют вам контролировать свои атрибуты извне. Они станут более заметными, когда вы начнете работу с объектно-ориентированным модулем программирования (вверх!). Пока это упражнение показывает вам, как манипулировать ими с ES6.
## Подсказка 1:
Создайте класс, Термостат. Здесь вы поместите свой конструктор, геттер и сеттер.
## Подсказка 2:
Дайте конструктору параметр (который вы можете назвать чем угодно). Установите параметр в атрибут с тем же именем. Помните, что вы изначально устанавливаете вещи в температуре Фаренгейта.
## Подсказка 3:
Создайте метод get, который преобразует атрибут Farenheit в Celsius. Используйте формулу, предоставленную вам.
## Подсказка 4:
Создайте метод с тем же именем, что и метод get. Он должен иметь параметр, который принимает температуру Цельсия. Преобразуйте его в farenheit и установите его в атрибут.
## Оповещение о спойлере - решение впереди!
## Решение
```javascript
function makeClass() {
"use strict";
/* Alter code below this line */
class Thermostat{
constructor(farenheit){
this.farenheit = farenheit;
}
get temperature(){
return 5 / 9 * (this.farenheit - 32);
}
set temperature(celsius){
this.farenheit = celsius * 9.0 / 5 + 32;
}
}
/* Alter code above this line */
return Thermostat;
}
```

View File

@@ -0,0 +1,47 @@
---
title: Use the Rest Operator with Function Parameters
localeTitle: Используйте оператор «Отдых» с параметрами функции
---
## Используйте оператор «Отдых» с параметрами функции
### Описание параметра Rest
[Сеть разработчиков Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters "Сеть разработчиков Mozilla")
### Оператор распространения по сравнению с параметром отдыха
[Переполнение стека](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "Переполнение стека")
### Видео, объясняющее распространение и отдых
[!["Изображение](http://img.youtube.com/vi/iLx4ma8ZqvQ/0.jpg)](http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
)
[### пример
Этот код
```javascript
const product = (function() {
"use strict";
return function product(n1, n2, n3) {
const args = [n1, n2, n3];
return args.reduce((a, b) => a * b, 1);
};
})();
console.log(product(2, 4, 6));//48
```
Может быть написано как таковое
```javascript
const product = (function() {
"use strict";
return function product(...n) {
return n.reduce((a, b) => a * b, 1);
};
})();
console.log(product(2, 4, 6));//48
```](http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
)

View File

@@ -0,0 +1,49 @@
---
title: Use the Spread Operator to Evaluate Arrays In-Place
localeTitle: Используйте оператора распространения для оценки массивов на месте
---
## Используйте оператора распространения для оценки массивов на месте
### Оператор спреда объяснен
[Оператор разворачивания сети разработчика Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax "Сеть разработчиков Mozilla")
### Оператор распространения по сравнению с параметром останова
[Переполнение стека](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "Переполнение стека")
### Описание объяснения оператора разворота и отдыха
[!["Изображение](http://img.youtube.com/vi/iLx4ma8ZqvQ/0.jpg)](http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
)
[
### Информация о методе apply ()
](http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
)
[](http://www.youtube.com/watch?feature=player_embedded&v=iLx4ma8ZqvQ
)[Метод применения платформы Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply "Сеть разработчиков Mozilla")
### 3 быстрых примера
```javascript
let numbers = [-12, 160, 0, -3, 51];
let minNum = Math.min.apply(null, numbers);
console.log(minNum);//-12
```
```javascript
let numbers = [-12, 160, 0, -3, 51];
let minNum = Math.min(numbers);
console.log(minNum);//NaN
```
```javascript
let numbers = [-12, 160, 0, -3, 51];
let minNum = Math.min(...numbers);
console.log(minNum);//-12
```

View File

@@ -0,0 +1,31 @@
---
title: Write Arrow Functions with Parameters
localeTitle: Функции записи стрелки с параметрами
---
## Функции записи стрелки с параметрами
Вот [отличный ресурс об анонимных функциях в JavaScript](http://helephant.com/2008/08/23/javascript-anonymous-functions/) , если вам все еще интересно, что это такое, и их роль.
Теперь вам поручено установить параметры внутри функций стрелок.
## Подсказка 1:
Избавьтесь от ключевого слова `function` . Поместите оператор стрелки.
## Подсказка 2:
Убедитесь, что вы изменили `var` на `const` .
## Предупреждение о спойлере - решение впереди!
## Решение:
```javascript
const myConcat = (arr1, arr2) => {
"use strict";
return arr1.concat(arr2);
};
// test your code
console.log(myConcat([1, 2], [3, 4, 5]));
```

View File

@@ -0,0 +1,26 @@
---
title: Write Concise Declarative Functions with ES6
localeTitle: Написание кратких декларативных функций с ES6
---
## Написание кратких декларативных функций с ES6
ES6 упрощает и придумывает, чтобы написать декларативные функции! В этом уроке вам поручено изменить функцию, чтобы следовать стандартам ES6.
## Подсказка 1:
Избавьтесь от ключевого слова `function` .
## Оповещение о спойлере - решение впереди!
## Решение
```javascript
const bicycle = {
gear: 2,
setGear(newGear) {
"use strict";
this.gear = newGear;
}
};
```

View File

@@ -0,0 +1,29 @@
---
title: Write Concise Object Literal Declarations Using Simple Fields
localeTitle: Записывать краткие декларации объектов с использованием простых полей
---
## Записывать краткие декларации объектов с использованием простых полей
Здесь нам поручено вернуть объект, который принимает параметры функции в качестве своих атрибутов.
# Подсказка 1:
Избавьтесь от двоеточий и дубликатов слов.
## Предупреждение о спойлере - решение впереди
## Решение
```javascript
const createPerson = (name, age, gender) => {
"use strict";
// change code below this line
return {
name,
age,
gender
};
// change code above this line
};
```

View File

@@ -0,0 +1,70 @@
---
title: Write Higher Order Arrow Functions
localeTitle: Написание функций стрелок с более высоким порядком
---
![](//discourse-user-assets.s3.amazonaws.com/original/2X/3/3c8584a085a0deaea66b3400e6321eeadab552a2.jpg)
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": Triangular_flag_on_post:") Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": Busts_in_silhouette:") и напишите свой собственный код ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":карандаш:")
### Проблема Объяснение:
Нам нужно вычислить и квадратичные значения из `realNumberArray` и сохранить их в переменной `squaredIntegers` используя функции `map()` , `filter()` и / или `reduce()` .
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 1
* Вам нужно будет `filter()` `realNumberArray` для целых положительных чисел (десятичные числа не являются целыми числами).
> _попытаться решить проблему сейчас_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 2
* Вам нужно будет `map()` значения из функции `filter()` с переменной `squaredIntegers` .
> _попытаться решить проблему сейчас_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": Speech_balloon:") Подсказка: 3
* Помните магию функций цепочки.
> _попытаться решить проблему сейчас_
## Осторожно, спойлеры!
![предупреждающий знак](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
**Решение впереди!**
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ": Начинающий:") Решение базового кода:
```javascript
const squareList = (arr) => {
"use strict";
const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );
return squaredIntegers;
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
```
![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ": Ракета:") [Код запуска](https://codepen.io/dylantyates/pen/WyWoYJ)
# Код Объяснение:
Использует функции operator `filter()` и `map()` для округления всех положительных целых чисел в заданном массиве.
#### Связанные ссылки
* [карта()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
* [фильтр()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
* [уменьшения ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
## ![:clipboard:](https://forum.freecodecamp.com/images/emoji/emoji_one/clipboard.png?v=3 ": Буфер обмена:") ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
* ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
* Добавьте объяснение своего решения.
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . ![:traffic_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/traffic_light.png?v=3 ":светофор:")
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . ( ![:warning:](https://forum.freecodecamp.com/images/emoji/emoji_one/warning.png?v=3 ":предупреждение:") **_НЕ_** _удаляйте существующие имена пользователей_ )
> Видеть ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": Point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.