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的范围并让关键字
---
![](//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`添加到if语句中的变量`i`
> _现在尝试解决问题_
## 扰流警报!
![警告牌](//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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。

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>` 它具有text-warning类并包含其中的`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
* 用只读`const`替换`var`的字符串。
> _现在尝试解决问题_
## ![: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
* 常见的约定是使用ALL CAPS命名`const`变量。
> _现在尝试解决问题_
## 扰流警报!
![警告牌](//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)
# 代码说明:
通过在`sentence`上使用`const` 我们可以将它设为只读并且通过在for循环中使用`let` on `i` ,我们可以避免一起使用`var` 。为了增加代码清晰度,我们还可以将`sentence`更改为`SENTENCE`以显示它是常量。
#### 相关链接
* [常量](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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。

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`
#### 相关链接
* [VAR](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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。

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: 改变用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 ":铅笔:")
### 问题说明:
使用各种元素赋值重新分配`const`变量`s`值。
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 "speech_balloon")提示1
* 您可以使用`var``let`更改`const`上的数组值。
> _现在尝试解决问题_
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 "speech_balloon")提示1
* 要访问数组值请使用array \[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`一样访问和更改数组的值。
#### 相关链接
* [常量](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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。

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`值发生变化。
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 "speech_balloon")提示1
* 使用Object.freezeobj来防止对象被更改。
> _现在尝试解决问题_
## 扰流警报!
![警告牌](//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)
# 代码说明:
通过在`MATH_CONSTANTS`上使用Object.freeze我们可以避免操纵它。
#### 相关链接
* [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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。

View File

@@ -0,0 +1,72 @@
---
title: Set Default Parameters for Your Functions
localeTitle: 设置函数的默认参数
---
## 设置函数的默认参数
_帖子_上_的_ _三角旗_ _如果卡住请记得使用Read-Search-Ask。尝试配对程序_ busts in\_silhouette并编写自己的代码pencil
### 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
```
rocket [运行代码](https://repl.it/@RyanPisuena/PleasingFumblingThings)
## 代码说明
* 这部分非常简单。通过将**value**参数设置为1来传递此部分。当函数遇到未传递任何**值的**测试用例时,默认情况下将为**值**分配一个值。
相关链接:
[Javascript默认参数](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters)
# :剪贴板:供稿说明:
* :警告:请勿添加与任何现有解决方案类似的解决方案。如果您认为它相似但更好,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - 基本,中级和高级。 :红绿灯:
* 如果您添加了任何相关的主要内容,请仅添加您的用户名。 (:警告:不要删除任何现有的用户名)
请参阅point\_right [Wiki挑战解决方案模板](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: 理解import和require之间的差异
---
## 理解import和require之间的差异
让我们澄清一下: `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: 使用*从文件导入所有内容
---
## 使用\*从文件导入所有内容
如果要从文件导入所有可能的内容则使用ES6提供的`import * as _ from`语法。这正是你在这次挑战中所做的任务!
## 提示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 \[ba\]因为它将保持赋值局部的效果。
2. const \[ba\] = \[ab\]将导致ab的值为undefined从左到右的简单赋值规则
因此,这个问题的解决方案是 \[ba\] = \[ab\]

View File

@@ -0,0 +1,18 @@
---
title: Use Destructuring Assignment to Assign Variables from Nested Objects
localeTitle: 使用解构分配从嵌套对象分配变量
---
## 使用解构分配从嵌套对象分配变量
提示通过最终测试使用_嵌套解构_
测试希望您仅获得`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) 。
因此,每个字符串都具有长度属性; genericString = {length13}。 这是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
```
将'str'的length属性值放入len中。

View File

@@ -0,0 +1,50 @@
---
title: Use Destructuring Assignment to Pass an Object as a Function's Parameters
localeTitle: 使用解构分配将对象作为函数的参数传递
---
## 使用解构分配将对象作为函数的参数传递
您可以传递整个对象,然后使用选择所需的特定属性`.`运营商。但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` 传递给函数。不要忘记修改第二个return语句。将`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: 使用与Rest运算符的Destructuring Assignment重新分配数组元素
---
## 使用与Rest运算符的Destructuring Assignment重新分配数组元素
请记住rest运算符允许可变数量的参数。在这个挑战中你必须摆脱数组的前两个元素。
## 提示1
将前两个元素分配给两个随机变量。
## 提示2
将数组的剩余部分设置为`...arr`
\=======
## 提示1
使用destructuring来创建`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: 使用export重用代码块
---
## 使用export重用代码块
我们学习了如何从另一个文件导入内容。但是有一个问题。您只能导入从该其他文件**导出的**文件。
你在这里的任务是导出`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: 使用getter和setter来控制对象的访问
---
## 使用getter和setter来控制对象的访问
getter和setter是类/对象的关键部分。它们允许您从外部控制其属性。当您开始使用面向对象编程单元时它们将变得更加突出即将推出。目前本练习将向您展示如何使用ES6操作它们。
## 提示1
创建恒温器类。你将把你的构造函数getter和setter放在这里。
## 提示2
为构造函数提供一个参数您可以为任何名称命名。将参数设置为同名属性。请记住您最初设置的是Farenheit温度。
## 提示3
创建一个将Farenheit属性转换为Celsius的get方法。使用给你的公式。
## 提示4
创建与get方法同名的set方法。它应该有一个接受摄氏温度的参数。将其转换为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运算符与函数参数一起使用
---
## 将Rest运算符与函数参数一起使用
### 休息参数说明
[Mozilla开发者网络](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters "Mozilla开发者网络")
### 与rest参数相比Spread运算符
[堆栈溢出](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "堆栈溢出")
### 视频解释传播和休息
[![“youtube视频链接传播和休息运算符的图像”width](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: 使用Spread运算符来就地评估数组
---
## 使用Spread运算符来就地评估数组
### 传播运营商解释道
[Mozilla开发人员网络传播运营商](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax "Mozilla开发者网络")
### Spread Operator与Rest Parameter相比较
[堆栈溢出](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "堆栈溢出")
### 视频解释扩散算子和静止参数
[![“youtube视频链接传播和休息运算符的图像”width](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/)的[很酷的资源](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`计算和平方值,并使用`map()` `filter()`和/或`reduce()`函数将它们存储在变量`squaredIntegers`
## ![: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
* 您需要将`filter()`函数中的值`map()`到变量`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 ":警告:") **请勿**添加与任何现有解决方案类似的解决方案。如果您认为它**_相似但更好_** ,那么尝试合并(或替换)现有的类似解决方案。
* 添加解决方案的说明。
* 将解决方案分为以下类别之一 - **基本** **中级**和**高级** 。 ![: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)供参考。