chore(i18n,curriculum): update translations

This commit is contained in:
camperbot
2021-10-27 15:10:57 +00:00
committed by Mrugesh Mohapatra
parent e139fbcf13
commit c1fb339bbc
539 changed files with 3319 additions and 3352 deletions

View File

@ -18,9 +18,9 @@ dashedName: access-array-data-with-indexes
**示例**
```js
var array = [50,60,70];
const array = [50, 60, 70];
array[0];
var data = array[1];
const data = array[1];
```
现在 `array[0]` 的值是 `50` `data` 的值为 `60`.
@ -76,7 +76,7 @@ if(typeof myArray !== "undefined" && typeof myData !== "undefined"){(function(y,
## --seed-contents--
```js
var myArray = [50,60,70];
const myArray = [50, 60, 70];
```
@ -84,6 +84,6 @@ var myArray = [50,60,70];
# --solutions--
```js
var myArray = [50,60,70];
var myData = myArray[0];
const myArray = [50, 60, 70];
const myData = myArray[0];
```

View File

@ -14,12 +14,13 @@ dashedName: access-multi-dimensional-arrays-with-indexes
**例如:**
```js
var arr = [
[1,2,3],
[4,5,6],
[7,8,9],
[[10,11,12], 13, 14]
const arr = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[[10, 11, 12], 13, 14]
];
arr[3];
arr[3][0];
arr[3][0][1];
@ -58,14 +59,19 @@ if(typeof myArray !== "undefined"){(function(){return "myData: " + myData + " my
## --seed-contents--
```js
var myArray = [[1,2,3], [4,5,6], [7,8,9], [[10,11,12], 13, 14]];
const myArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[[10, 11, 12], 13, 14],
];
var myData = myArray[0][0];
const myData = myArray[0][0];
```
# --solutions--
```js
var myArray = [[1,2,3],[4,5,6], [7,8,9], [[10,11,12], 13, 14]];
var myData = myArray[2][1];
const myArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[10, 11, 12], 13, 14]];
const myData = myArray[2][1];
```

View File

@ -14,7 +14,7 @@ dashedName: accessing-nested-arrays
下面是访问嵌套数组的例子:
```js
var ourPets = [
const ourPets = [
{
animalType: "cat",
names: [
@ -32,6 +32,7 @@ var ourPets = [
]
}
];
ourPets[0].names[1];
ourPets[1].names[0];
```
@ -72,7 +73,7 @@ assert(/=\s*myPlants\[1\].list\[1\]/.test(code));
## --seed-contents--
```js
var myPlants = [
const myPlants = [
{
type: "flowers",
list: [
@ -91,13 +92,13 @@ var myPlants = [
}
];
var secondTree = "";
const secondTree = "";
```
# --solutions--
```js
var myPlants = [
const myPlants = [
{
type: "flowers",
list: [
@ -116,5 +117,5 @@ var myPlants = [
}
];
var secondTree = myPlants[1].list[1];
const secondTree = myPlants[1].list[1];
```

View File

@ -14,7 +14,7 @@ dashedName: accessing-nested-objects
这是一个嵌套对象:
```js
var ourStorage = {
const ourStorage = {
"desk": {
"drawer": "stapler"
},
@ -26,6 +26,7 @@ var ourStorage = {
"bottom drawer": "soda"
}
};
ourStorage.cabinet["top drawer"].folder2;
ourStorage.desk.drawer;
```
@ -66,7 +67,7 @@ assert(/=\s*myStorage\.car\.inside\[\s*("|')glove box\1\s*\]/g.test(code));
## --seed-contents--
```js
var myStorage = {
const myStorage = {
"car": {
"inside": {
"glove box": "maps",
@ -78,13 +79,13 @@ var myStorage = {
}
};
var gloveBoxContents = undefined;
const gloveBoxContents = undefined;
```
# --solutions--
```js
var myStorage = {
const myStorage = {
"car":{
"inside":{
"glove box":"maps",
@ -95,5 +96,5 @@ var myStorage = {
}
}
};
var gloveBoxContents = myStorage.car.inside["glove box"];
const gloveBoxContents = myStorage.car.inside["glove box"];
```

View File

@ -16,11 +16,12 @@ dashedName: accessing-object-properties-with-bracket-notation
这是一个使用方括号表示法读取对象属性的例子:
```js
var myObj = {
const myObj = {
"Space Name": "Kirk",
"More Space": "Spock",
"NoSpace": "USS Enterprise"
};
myObj["Space Name"];
myObj['More Space'];
myObj["NoSpace"];
@ -78,26 +79,25 @@ assert(code.match(/testObj\s*?\[('|")[^'"]+\1\]/g).length > 1);
```js
// Setup
var testObj = {
const testObj = {
"an entree": "hamburger",
"my side": "veggies",
"the drink": "water"
};
// Only change code below this line
var entreeValue = testObj; // Change this line
var drinkValue = testObj; // Change this line
const entreeValue = testObj; // Change this line
const drinkValue = testObj; // Change this line
```
# --solutions--
```js
var testObj = {
const testObj = {
"an entree": "hamburger",
"my side": "veggies",
"the drink": "water"
};
var entreeValue = testObj["an entree"];
var drinkValue = testObj['the drink'];
const entreeValue = testObj["an entree"];
const drinkValue = testObj['the drink'];
```

View File

@ -16,15 +16,17 @@ dashedName: accessing-object-properties-with-dot-notation
这里是一个用点符号(`.`)读取对象属性的示例:
```js
var myObj = {
const myObj = {
prop1: "val1",
prop2: "val2"
};
var prop1val = myObj.prop1;
var prop2val = myObj.prop2;
const prop1val = myObj.prop1;
const prop2val = myObj.prop2;
```
`prop1val` 的值将为字符串 `val1`,并且`prop2val` 的值将为字符串 `val2`
# --instructions--
使用点号读取 `testObj` 的属性值。 将变量 `hatValue` 的值设置为该对象的 `hat` 属性的值,并将变量 `shirtValue` 的值设置为该对象的 `shirt` 属性的值。
@ -73,27 +75,26 @@ assert(code.match(/testObj\.\w+/g).length > 1);
```js
// Setup
var testObj = {
const testObj = {
"hat": "ballcap",
"shirt": "jersey",
"shoes": "cleats"
};
// Only change code below this line
var hatValue = testObj; // Change this line
var shirtValue = testObj; // Change this line
const hatValue = testObj; // Change this line
const shirtValue = testObj; // Change this line
```
# --solutions--
```js
var testObj = {
const testObj = {
"hat": "ballcap",
"shirt": "jersey",
"shoes": "cleats"
};
var hatValue = testObj.hat;
var shirtValue = testObj.shirt;
const hatValue = testObj.hat;
const shirtValue = testObj.shirt;
```

View File

@ -14,11 +14,14 @@ dashedName: accessing-object-properties-with-variables
以下是一个使用变量来访问属性的例子:
```js
var dogs = {
Fido: "Mutt", Hunter: "Doberman", Snoopie: "Beagle"
const dogs = {
Fido: "Mutt",
Hunter: "Doberman",
Snoopie: "Beagle"
};
var myDog = "Hunter";
var myBreed = dogs[myDog];
const myDog = "Hunter";
const myBreed = dogs[myDog];
console.log(myBreed);
```
@ -27,14 +30,16 @@ console.log(myBreed);
使用这一概念的另一种情况是:属性的名字是在程序运行期间动态收集得到的。如下所示:
```js
var someObj = {
const someObj = {
propName: "John"
};
function propPrefix(str) {
var s = "prop";
const s = "prop";
return s + str;
}
var someProp = propPrefix("Name");
const someProp = propPrefix("Name");
console.log(someObj[someProp]);
```
@ -96,26 +101,25 @@ if(typeof player !== "undefined"){(function(v){return v;})(player);}
```js
// Setup
var testObj = {
const testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
// Only change code below this line
var playerNumber; // Change this line
var player = testObj; // Change this line
const playerNumber = 42; // Change this line
const player = testObj; // Change this line
```
# --solutions--
```js
var testObj = {
const testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
var playerNumber = 16;
var player = testObj[playerNumber];
const playerNumber = 16;
const player = testObj[playerNumber];
```

View File

@ -28,7 +28,7 @@ ourDog["bark"] = "bow-wow";
例如:
```js
var ourDog = {
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
@ -67,7 +67,7 @@ assert(!/bark[^\n]:/.test(code));
## --seed-contents--
```js
var myDog = {
const myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,
@ -80,7 +80,7 @@ var myDog = {
# --solutions--
```js
var myDog = {
const myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,

View File

@ -18,7 +18,7 @@ JavaScript 中,我们通过符号 `+` 来进行加法运算。
**代码示例:**
```js
myVar = 5 + 10;
const myVar = 5 + 10;
```
现在,变量 `myVar` 的值为 `15`
@ -52,11 +52,11 @@ assert(/\+/.test(code));
## --seed-contents--
```js
var sum = 10 + 0;
const sum = 10 + 0;
```
# --solutions--
```js
var sum = 10 + 10;
const sum = 10 + 10;
```

View File

@ -92,7 +92,7 @@ assert(code.match(/break/g).length > 2);
```js
function switchOfStuff(val) {
var answer = "";
let answer = "";
// Only change code below this line
@ -108,7 +108,7 @@ switchOfStuff(1);
```js
function switchOfStuff(val) {
var answer = "";
let answer = "";
switch(val) {
case "a":

View File

@ -14,8 +14,8 @@ dashedName: appending-variables-to-strings
示例:
```js
var anAdjective = "awesome!";
var ourStr = "freeCodeCamp is ";
const anAdjective = "awesome!";
let ourStr = "freeCodeCamp is ";
ourStr += anAdjective;
```
@ -64,15 +64,14 @@ assert(code.match(/myStr\s*\+=\s*someAdjective\s*/).length > 0);
```js
// Change code below this line
var someAdjective;
var myStr = "Learning to code is ";
const someAdjective = "";
let myStr = "Learning to code is ";
```
# --solutions--
```js
var someAdjective = "neat";
var myStr = "Learning to code is ";
const someAdjective = "neat";
let myStr = "Learning to code is ";
myStr += someAdjective;
```

View File

@ -18,7 +18,7 @@ dashedName: build-javascript-objects
这里是一个猫对象的样本:
```js
var cat = {
const cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
@ -29,7 +29,7 @@ var cat = {
在此示例中,所有属性都存储为字符串,例如 `name``legs``tails`。 然而,你也可以使用数字作为属性。 你甚至可以省略单字字符串属性中的引号,如下所示:
```js
var anotherObject = {
const anotherObject = {
make: "Ford",
5: "five",
"model": "focus"
@ -139,18 +139,18 @@ assert(
## --seed-contents--
```js
var myDog = {
// Only change code below this line
const myDog = {
// Only change code below this line
// Only change code above this line
// Only change code above this line
};
```
# --solutions--
```js
var myDog = {
const myDog = {
"name": "Camper",
"legs": 4,
"tails": 1,

View File

@ -16,7 +16,7 @@ dashedName: comparison-with-the-equality-operator
```js
function equalityTest(myVal) {
if (myVal == 10) {
return "Equal";
return "Equal";
}
return "Not Equal";
}

View File

@ -20,7 +20,7 @@ myVar = myVar + 5;
其中一种就是 `+=` 运算符。
```js
var myVar = 1;
let myVar = 1;
myVar += 5;
console.log(myVar);
```
@ -61,9 +61,9 @@ assert(code.match(/\+=/g).length === 3);
```js
assert(
/var a = 3;/.test(code) &&
/var b = 17;/.test(code) &&
/var c = 12;/.test(code)
/let a = 3;/.test(code) &&
/let b = 17;/.test(code) &&
/let c = 12;/.test(code)
);
```
@ -78,9 +78,9 @@ assert(
## --seed-contents--
```js
var a = 3;
var b = 17;
var c = 12;
let a = 3;
let b = 17;
let c = 12;
// Only change code below this line
a = a + 12;
@ -91,9 +91,9 @@ c = c + 7;
# --solutions--
```js
var a = 3;
var b = 17;
var c = 12;
let a = 3;
let b = 17;
let c = 12;
a += 12;
b += 9;

View File

@ -55,9 +55,9 @@ assert(code.match(/\/=/g).length === 3);
```js
assert(
/var a = 48;/.test(code) &&
/var b = 108;/.test(code) &&
/var c = 33;/.test(code)
/let a = 48;/.test(code) &&
/let b = 108;/.test(code) &&
/let c = 33;/.test(code)
);
```
@ -72,9 +72,9 @@ assert(
## --seed-contents--
```js
var a = 48;
var b = 108;
var c = 33;
let a = 48;
let b = 108;
let c = 33;
// Only change code below this line
a = a / 12;
@ -85,9 +85,9 @@ c = c / 11;
# --solutions--
```js
var a = 48;
var b = 108;
var c = 33;
let a = 48;
let b = 108;
let c = 33;
a /= 12;
b /= 4;

View File

@ -55,9 +55,9 @@ assert(code.match(/\*=/g).length === 3);
```js
assert(
/var a = 5;/.test(code) &&
/var b = 12;/.test(code) &&
/var c = 4\.6;/.test(code)
/let a = 5;/.test(code) &&
/let b = 12;/.test(code) &&
/let c = 4\.6;/.test(code)
);
```
@ -72,9 +72,9 @@ assert(
## --seed-contents--
```js
var a = 5;
var b = 12;
var c = 4.6;
let a = 5;
let b = 12;
let c = 4.6;
// Only change code below this line
a = a * 5;
@ -85,9 +85,9 @@ c = c * 10;
# --solutions--
```js
var a = 5;
var b = 12;
var c = 4.6;
let a = 5;
let b = 12;
let c = 4.6;
a *= 5;
b *= 3;

View File

@ -55,7 +55,7 @@ assert(code.match(/-=/g).length === 3);
```js
assert(
/var a = 11;/.test(code) && /var b = 9;/.test(code) && /var c = 3;/.test(code)
/let a = 11;/.test(code) && /let b = 9;/.test(code) && /let c = 3;/.test(code)
);
```
@ -70,9 +70,9 @@ assert(
## --seed-contents--
```js
var a = 11;
var b = 9;
var c = 3;
let a = 11;
let b = 9;
let c = 3;
// Only change code below this line
a = a - 6;
@ -83,9 +83,9 @@ c = c - 1;
# --solutions--
```js
var a = 11;
var b = 9;
var c = 3;
let a = 11;
let b = 9;
let c = 3;
a -= 6;
b -= 15;

View File

@ -16,7 +16,7 @@ dashedName: concatenating-strings-with-the-plus-equals-operator
例如:
```js
var ourStr = "I come first. ";
let ourStr = "I come first. ";
ourStr += "I come second.";
```
@ -57,14 +57,12 @@ assert(code.match(/myStr\s*\+=\s*(["']).*\1/g));
## --seed-contents--
```js
// Only change code below this line
var myStr;
let myStr;
```
# --solutions--
```js
var myStr = "This is the first sentence. ";
let myStr = "This is the first sentence. ";
myStr += "This is the second sentence.";
```

View File

@ -14,8 +14,8 @@ dashedName: constructing-strings-with-variables
例如:
```js
var ourName = "freeCodeCamp";
var ourStr = "Hello, our name is " + ourName + ", how are you?";
const ourName = "freeCodeCamp";
const ourStr = "Hello, our name is " + ourName + ", how are you?";
```
`ourStr` 值为 `Hello, our name is freeCodeCamp, how are you?`
@ -63,13 +63,13 @@ assert(code.match(/["']\s*\+\s*myName\s*\+\s*["']/g).length > 0);
```js
// Only change code below this line
var myName;
var myStr;
const myName = "";
const myStr = "";
```
# --solutions--
```js
var myName = "Bob";
var myStr = "My name is " + myName + " and I am well!";
const myName = "Bob";
const myStr = "My name is " + myName + " and I am well!";
```

View File

@ -159,7 +159,7 @@ assert(
## --seed-contents--
```js
var count = 0;
let count = 0;
function cc(card) {
// Only change code below this line
@ -175,7 +175,7 @@ cc(2); cc(3); cc(7); cc('K'); cc('A');
# --solutions--
```js
var count = 0;
let count = 0;
function cc(card) {
switch(card) {
case 2:

View File

@ -42,13 +42,14 @@ assert(myDecimal % 1 != 0);
## --seed-contents--
```js
var ourDecimal = 5.7;
const ourDecimal = 5.7;
// Only change code below this line
```
# --solutions--
```js
var myDecimal = 9.9;
const myDecimal = 9.9;
```

View File

@ -39,7 +39,7 @@ assert(myVar === 10);
```js
assert(
/var\s*myVar\s*=\s*11;\s*\/*.*\s*([-]{2}\s*myVar|myVar\s*[-]{2});/.test(code)
/let\s*myVar\s*=\s*11;\s*\/*.*\s*([-]{2}\s*myVar|myVar\s*[-]{2});/.test(code)
);
```
@ -52,7 +52,7 @@ assert(/[-]{2}\s*myVar|myVar\s*[-]{2}/.test(code));
不应修改注释上方的代码。
```js
assert(/var myVar = 11;/.test(code));
assert(/let myVar = 11;/.test(code));
```
# --seed--
@ -66,7 +66,7 @@ assert(/var myVar = 11;/.test(code));
## --seed-contents--
```js
var myVar = 11;
let myVar = 11;
// Only change code below this line
myVar = myVar - 1;
@ -75,6 +75,6 @@ myVar = myVar - 1;
# --solutions--
```js
var myVar = 11;
let myVar = 11;
myVar--;
```

View File

@ -18,7 +18,7 @@ delete ourDog.bark;
例如:
```js
var ourDog = {
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
@ -70,7 +70,7 @@ assert(code.match(/"tails": 1/g).length > 0);
```js
// Setup
var myDog = {
const myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,
@ -79,12 +79,13 @@ var myDog = {
};
// Only change code below this line
```
# --solutions--
```js
var myDog = {
const myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,

View File

@ -46,11 +46,11 @@ assert(code.match(/quotient/g).length === 1);
## --seed-contents--
```js
var quotient = 0.0 / 2.0; // Change this line
const quotient = 0.0 / 2.0; // Change this line
```
# --solutions--
```js
var quotient = 4.4 / 2.0;
const quotient = 4.4 / 2.0;
```

View File

@ -16,7 +16,7 @@ JavaScript 中使用 `/` 符号做除法运算。
**示例**
```js
myVar = 16 / 2;
const myVar = 16 / 2;
```
现在,变量 `myVar` 的值为 `8`
@ -49,11 +49,11 @@ assert(/\d+\s*\/\s*\d+/.test(code));
## --seed-contents--
```js
var quotient = 66 / 0;
const quotient = 66 / 0;
```
# --solutions--
```js
var quotient = 66 / 33;
const quotient = 66 / 33;
```

View File

@ -89,11 +89,11 @@ console.log('myStr:\n' + myStr);}})();
## --seed-contents--
```js
var myStr; // Change this line
const myStr = ""; // Change this line
```
# --solutions--
```js
var myStr = "FirstLine\n\t\\SecondLine\nThirdLine";
const myStr = "FirstLine\n\t\\SecondLine\nThirdLine";
```

View File

@ -14,7 +14,7 @@ dashedName: escaping-literal-quotes-in-strings
在 JavaScript 中,可以通过在引号前面使用<dfn>反斜杠</dfn>`\`)来<dfn>转义</dfn>引号。
```js
var sampleStr = "Alan said, \"Peter is learning JavaScript\".";
const sampleStr = "Alan said, \"Peter is learning JavaScript\".";
```
有了转义符号JavaScript 就知道这个单引号或双引号并不是字符串的结尾,而是字符串内的字符。 所以,上面的字符串打印到控制台的结果为:
@ -62,11 +62,11 @@ assert(/I am a "double quoted" string inside "double quotes(\."|"\.)$/.test(mySt
## --seed-contents--
```js
var myStr = ""; // Change this line
const myStr = ""; // Change this line
```
# --solutions--
```js
var myStr = "I am a \"double quoted\" string inside \"double quotes\".";
const myStr = "I am a \"double quoted\" string inside \"double quotes\".";
```

View File

@ -31,7 +31,7 @@ dashedName: finding-a-remainder-in-javascript
变量 `remainder` 应该被初始化。
```js
assert(/var\s+?remainder/.test(code));
assert(/(const|let|var)\s+?remainder/.test(code));
```
`remainder` 的值应该等于 `2`
@ -57,13 +57,11 @@ assert(/\s+?remainder\s*?=\s*?.*%.*;?/.test(code));
## --seed-contents--
```js
// Only change code below this line
var remainder;
const remainder = 0;
```
# --solutions--
```js
var remainder = 11 % 3;
const remainder = 11 % 3;
```

View File

@ -14,9 +14,10 @@ dashedName: global-vs--local-scope-in-functions
下面为例:
```js
var someVar = "Hat";
const someVar = "Hat";
function myFun() {
var someVar = "Head";
const someVar = "Head";
return someVar;
}
```
@ -53,13 +54,11 @@ assert(/return outerWear/.test(code));
```js
// Setup
var outerWear = "T-Shirt";
const outerWear = "T-Shirt";
function myOutfit() {
// Only change code below this line
// Only change code above this line
return outerWear;
}
@ -70,9 +69,9 @@ myOutfit();
# --solutions--
```js
var outerWear = "T-Shirt";
const outerWear = "T-Shirt";
function myOutfit() {
var outerWear = "sweater";
const outerWear = "sweater";
return outerWear;
}
```

View File

@ -90,7 +90,8 @@ assert(golfScore(5, 9) === 'Go Home!');
## --seed-contents--
```js
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
const names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
// Only change code below this line

View File

@ -39,7 +39,7 @@ assert(myVar === 88);
```js
assert(
/var\s*myVar\s*=\s*87;\s*\/*.*\s*([+]{2}\s*myVar|myVar\s*[+]{2});/.test(code)
/let\s*myVar\s*=\s*87;\s*\/*.*\s*([+]{2}\s*myVar|myVar\s*[+]{2});/.test(code)
);
```
@ -52,7 +52,7 @@ assert(/[+]{2}\s*myVar|myVar\s*[+]{2}/.test(code));
不应该修改注释上面的代码。
```js
assert(/var myVar = 87;/.test(code));
assert(/let myVar = 87;/.test(code));
```
# --seed--
@ -66,7 +66,7 @@ assert(/var myVar = 87;/.test(code));
## --seed-contents--
```js
var myVar = 87;
let myVar = 87;
// Only change code below this line
myVar = myVar + 1;
@ -75,6 +75,6 @@ myVar = myVar + 1;
# --solutions--
```js
var myVar = 87;
let myVar = 87;
myVar++;
```

View File

@ -64,7 +64,7 @@ assert(testElse(10) === 'Bigger than 5');
不要修改相应注释的上面或下面的代码。
```js
assert(/var result = "";/.test(code) && /return result;/.test(code));
assert(/let result = "";/.test(code) && /return result;/.test(code));
```
# --seed--
@ -73,7 +73,7 @@ assert(/var result = "";/.test(code) && /return result;/.test(code));
```js
function testElse(val) {
var result = "";
let result = "";
// Only change code below this line
if (val > 5) {
@ -95,7 +95,7 @@ testElse(4);
```js
function testElse(val) {
var result = "";
let result = "";
if(val > 5) {
result = "Bigger than 5";
} else {

View File

@ -12,8 +12,9 @@ dashedName: iterate-through-an-array-with-a-for-loop
JavaScript 中的一个常见任务是遍历数组的内容。 一种方法是使用 `for` 循环。 下面的代码将输出数组 `arr` 的每个元素到控制台:
```js
var arr = [10, 9, 8, 7, 6];
for (var i = 0; i < arr.length; i++) {
const arr = [10, 9, 8, 7, 6];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
```
@ -62,18 +63,19 @@ assert(!__helpers.removeWhiteSpace(code).match(/total[=+-]0*[1-9]+/gm));
```js
// Setup
var myArr = [ 2, 3, 4, 5, 6];
const myArr = [2, 3, 4, 5, 6];
// Only change code below this line
```
# --solutions--
```js
var myArr = [ 2, 3, 4, 5, 6];
var total = 0;
const myArr = [2, 3, 4, 5, 6];
let total = 0;
for (var i = 0; i < myArr.length; i++) {
for (let i = 0; i < myArr.length; i++) {
total += myArr[i];
}
```

View File

@ -12,8 +12,9 @@ dashedName: iterate-with-javascript-do---while-loops
下一种循环叫作 `do...while` 循环。 它被称为 `do...while` 循环,是因为不论什么情况,它都会首先 `do`(运行)循环里的第一部分代码,然后 `while`(当)规定的条件被评估为 `true`(真)的时候,它会继续运行循环。
```js
var ourArray = [];
var i = 0;
const ourArray = [];
let i = 0;
do {
ourArray.push(i);
i++;
@ -23,8 +24,9 @@ do {
上面的示例行为类似于其他类型的循环,由此产生的数组将看起来像 `[0, 1, 2, 3, 4]`。 然而,`do...while` 不同于其他循环的地方,是第一次循环检查失败时的行为。 让我们看看代码中的区别:这里是一个常规的 `while` 循环,只要 `i < 5`,就会在循环中运行代码:
```js
var ourArray = [];
var i = 5;
const ourArray = [];
let i = 5;
while (i < 5) {
ourArray.push(i);
i++;
@ -34,8 +36,9 @@ while (i < 5) {
这个例子中,定义了一个空数组 `ourArray` 以及一个值为 5 的 `i` 。 当执行 `while` 循环时,因为 `i` 不小于 5所以循环条件为 `false`,循环内的代码将不会执行。 `ourArray` 最终没有添加任何内容因此示例中的所有代码执行完时ourArray 仍然是`[]`。 现在,看一下 `do...while` 循环。
```js
var ourArray = [];
var i = 5;
const ourArray = [];
let i = 5;
do {
ourArray.push(i);
i++;
@ -80,8 +83,8 @@ if(typeof myArray !== "undefined"){(function(){return myArray;})();}
```js
// Setup
var myArray = [];
var i = 10;
const myArray = [];
let i = 10;
// Only change code below this line
while (i < 5) {
@ -93,8 +96,8 @@ while (i < 5) {
# --solutions--
```js
var myArray = [];
var i = 10;
const myArray = [];
let i = 10;
do {
myArray.push(i);
i++;

View File

@ -15,9 +15,10 @@ dashedName: local-scope-and-functions
```js
function myTest() {
var loc = "foo";
const loc = "foo";
console.log(loc);
}
myTest();
console.log(loc);
```
@ -38,6 +39,7 @@ console.log(loc);
function declared() {
myVar;
}
assert.throws(declared, ReferenceError);
```
@ -57,7 +59,6 @@ assert(
```js
function myLocalScope() {
// Only change code below this line
console.log('inside myLocalScope', myVar);
@ -73,9 +74,8 @@ console.log('outside myLocalScope', myVar);
```js
function myLocalScope() {
// Only change code below this line
var myVar;
let myVar;
console.log('inside myLocalScope', myVar);
}
myLocalScope();

View File

@ -16,10 +16,10 @@ dashedName: manipulate-arrays-with-push
示例:
```js
var arr1 = [1,2,3];
const arr1 = [1, 2, 3];
arr1.push(4);
var arr2 = ["Stimpson", "J", "cat"];
const arr2 = ["Stimpson", "J", "cat"];
arr2.push(["happy", "joy"]);
```
@ -64,14 +64,15 @@ assert(
```js
// Setup
var myArray = [["John", 23], ["cat", 2]];
const myArray = [["John", 23], ["cat", 2]];
// Only change code below this line
```
# --solutions--
```js
var myArray = [["John", 23], ["cat", 2]];
const myArray = [["John", 23], ["cat", 2]];
myArray.push(["dog",3]);
```

View File

@ -14,7 +14,7 @@ dashedName: manipulating-complex-objects
这是一个复杂数据结构的示例:
```js
var ourMusic = [
const ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
@ -135,7 +135,7 @@ myMusic.forEach(object => {
## --seed-contents--
```js
var myMusic = [
const myMusic = [
{
"artist": "Billy Joel",
"title": "Piano Man",
@ -153,7 +153,7 @@ var myMusic = [
# --solutions--
```js
var myMusic = [
const myMusic = [
{
"artist": "Billy Joel",
"title": "Piano Man",

View File

@ -12,7 +12,7 @@ dashedName: multiple-identical-options-in-switch-statements
如果你忘了给 `switch` 的每一条 `case` 添加 `break`,那么后续的 `case` 会一直执行,直到遇见 `break` 为止。 如果你想为 `switch` 中的多个不同的输入设置相同的结果,可以这样写:
```js
var result = "";
let result = "";
switch(val) {
case 1:
case 2:
@ -109,7 +109,7 @@ assert(code.match(/case/g).length === 9);
```js
function sequentialSizes(val) {
var answer = "";
let answer = "";
// Only change code below this line
@ -125,7 +125,7 @@ sequentialSizes(1);
```js
function sequentialSizes(val) {
var answer = "";
let answer = "";
switch(val) {
case 1:

View File

@ -42,11 +42,11 @@ assert(/\*/.test(code));
## --seed-contents--
```js
var product = 2.0 * 0.0;
const product = 2.0 * 0.0;
```
# --solutions--
```js
var product = 2.0 * 2.5;
const product = 2.0 * 2.5;
```

View File

@ -16,7 +16,7 @@ JavaScript 使用 `*` 符号表示两数相乘。
**示例**
```js
myVar = 13 * 13;
const myVar = 13 * 13;
```
现在,变量 `myVar` 的值为 `169`
@ -50,11 +50,11 @@ assert(/\*/.test(code));
## --seed-contents--
```js
var product = 8 * 0;
const product = 8 * 0;
```
# --solutions--
```js
var product = 8 * 10;
const product = 8 * 10;
```

View File

@ -12,7 +12,7 @@ dashedName: nest-one-array-within-another-array
您也可以在其他数组中嵌套数组,如:
```js
[["Bulls", 23], ["White Sox", 45]]
const teams = [["Bulls", 23], ["White Sox", 45]];
```
这也叫做多维数组(<dfn>multi-dimensional array</dfn>)。
@ -41,11 +41,11 @@ if(typeof myArray !== "undefined"){(function(){return myArray;})();}
```js
// Only change code below this line
var myArray = [];
const myArray = [];
```
# --solutions--
```js
var myArray = [[1,2,3]];
const myArray = [[1, 2, 3]];
```

View File

@ -68,34 +68,33 @@ assert(lookUpProfile('Akira', 'address') === 'No such property');
```js
// Setup
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["JavaScript", "Gaming", "Foxes"]
}
const contacts = [
{
firstName: "Akira",
lastName: "Laine",
number: "0543236543",
likes: ["Pizza", "Coding", "Brownie Points"],
},
{
firstName: "Harry",
lastName: "Potter",
number: "0994372684",
likes: ["Hogwarts", "Magic", "Hagrid"],
},
{
firstName: "Sherlock",
lastName: "Holmes",
number: "0487345643",
likes: ["Intriguing Cases", "Violin"],
},
{
firstName: "Kristian",
lastName: "Vos",
number: "unknown",
likes: ["JavaScript", "Gaming", "Foxes"],
},
];
function lookUpProfile(name, prop) {
// Only change code below this line
@ -108,44 +107,38 @@ lookUpProfile("Akira", "likes");
# --solutions--
```js
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["JavaScript", "Gaming", "Foxes"]
},
const contacts = [
{
firstName: "Akira",
lastName: "Laine",
number: "0543236543",
likes: ["Pizza", "Coding", "Brownie Points"],
},
{
firstName: "Harry",
lastName: "Potter",
number: "0994372684",
likes: ["Hogwarts", "Magic", "Hagrid"],
},
{
firstName: "Sherlock",
lastName: "Holmes",
number: "0487345643",
likes: ["Intriguing Cases", "Violin"],
},
{
firstName: "Kristian",
lastName: "Vos",
number: "unknown",
likes: ["JavaScript", "Gaming", "Foxes"],
},
];
//Write your function in between these comments
function lookUpProfile(name, prop){
for(var i in contacts){
if(contacts[i].firstName === name) {
return contacts[i][prop] || "No such property";
}
function lookUpProfile(name, prop) {
for (let i in contacts) {
if (contacts[i].firstName === name) {
return contacts[i][prop] || "No such property";
}
return "No such contact";
}
return "No such contact";
}
//Write your function in between these comments
lookUpProfile("Akira", "likes");
```

View File

@ -12,21 +12,21 @@ dashedName: quoting-strings-with-single-quotes
JavaScript 中的<dfn>字符串</dfn>可以使用开始和结束都是同类型的单引号或双引号表示。 与其他一些编程语言不同的是,单引号和双引号的功能在 JavaScript 中是相同的。
```js
doubleQuoteStr = "This is a string";
singleQuoteStr = 'This is also a string';
const doubleQuoteStr = "This is a string";
const singleQuoteStr = 'This is also a string';
```
当你需要在一个字符串中使用多个引号的时候,你可以使用单引号包裹双引号或者相反。 常见的场景比如在字符串中包含对话的句子需要用引号包裹。 另外比如在一个包含有 `<a>` 标签的字符串中,标签的属性值需要用引号包裹。
```js
conversation = 'Finn exclaims to Jake, "Algebraic!"';
const conversation = 'Finn exclaims to Jake, "Algebraic!"';
```
然而,如果你需要在其中使用外面的引号,这就成为一个问题。 记住,一个字符串在开头和结尾处有相同的引号。 要知道,字符串在开头和结尾都有相同的引号,如果在中间使用了相同的引号,字符串会提前中止并抛出错误。
```js
goodStr = 'Jake asks Finn, "Hey, let\'s go on an adventure?"';
badStr = 'Finn responds, "Let's go!"';
const goodStr = 'Jake asks Finn, "Hey, let\'s go on an adventure?"';
const badStr = 'Finn responds, "Let's go!"';
```
在这里 `badStr` 会产生一个错误。
@ -71,11 +71,11 @@ assert(code.match(/"/g).length === 4 && code.match(/'/g).length === 2);
## --seed-contents--
```js
var myStr = "<a href=\"http://www.example.com\" target=\"_blank\">Link</a>";
const myStr = "<a href=\"http://www.example.com\" target=\"_blank\">Link</a>";
```
# --solutions--
```js
var myStr = '<a href="http://www.example.com" target="_blank">Link</a>';
const myStr = '<a href="http://www.example.com" target="_blank">Link</a>';
```

View File

@ -115,7 +115,7 @@ const _recordCollection = {
```js
// Setup
var recordCollection = {
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
@ -146,7 +146,7 @@ updateRecords(recordCollection, 5439, 'artist', 'ABBA');
# --solutions--
```js
var recordCollection = {
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',

View File

@ -14,9 +14,9 @@ dashedName: replace-loops-using-recursion
```js
function multiply(arr, n) {
var product = 1;
for (var i = 0; i < n; i++) {
product *= arr[i];
let product = 1;
for (let i = 0; i < n; i++) {
product *= arr[i];
}
return product;
}

View File

@ -108,7 +108,7 @@ assert(chainToSwitch(156) === '');
```js
function chainToSwitch(val) {
var answer = "";
let answer = "";
// Only change code below this line
if (val === "bob") {
@ -134,7 +134,7 @@ chainToSwitch(7);
```js
function chainToSwitch(val) {
var answer = "";
let answer = "";
switch(val) {
case "bob":

View File

@ -17,7 +17,8 @@ dashedName: return-a-value-from-a-function-with-return
function plusThree(num) {
return num + 3;
}
var answer = plusThree(5);
const answer = plusThree(5);
```
`answer` 的值为 `8`

View File

@ -78,7 +78,7 @@ assert(code.match(/break/g).length > 2);
```js
function caseInSwitch(val) {
var answer = "";
let answer = "";
// Only change code below this line
@ -94,7 +94,7 @@ caseInSwitch(1);
```js
function caseInSwitch(val) {
var answer = "";
let answer = "";
switch(val) {
case 1:

View File

@ -81,13 +81,13 @@ var hasNumber = false;
## --seed-contents--
```js
var myList = [];
const myList = [];
```
# --solutions--
```js
var myList = [
const myList = [
["Candy", 10],
["Potatoes", 12],
["Eggs", 12],

View File

@ -93,12 +93,10 @@ function nextInLine(arr, item) {
return item;
// Only change code above this line
}
// Setup
var testArr = [1,2,3,4,5];
const testArr = [1, 2, 3, 4, 5];
// Display code
console.log("Before: " + JSON.stringify(testArr));
@ -109,7 +107,7 @@ console.log("After: " + JSON.stringify(testArr));
# --solutions--
```js
var testArr = [ 1,2,3,4,5];
const testArr = [1, 2, 3, 4, 5];
function nextInLine(arr, item) {
arr.push(item);

View File

@ -14,7 +14,7 @@ dashedName: store-multiple-values-in-one-variable-using-javascript-arrays
以左方括号开始定义一个数组,以右方括号结束,里面每个元素之间用逗号隔开,例如:
```js
var sandwich = ["peanut butter", "jelly", "bread"]
const sandwich = ["peanut butter", "jelly", "bread"];
```
# --instructions--
@ -53,11 +53,11 @@ assert(typeof myArray[1] !== 'undefined' && typeof myArray[1] == 'number');
```js
// Only change code below this line
var myArray = [];
const myArray = [];
```
# --solutions--
```js
var myArray = ["The Answer", 42];
const myArray = ["The Answer", 42];
```

View File

@ -16,7 +16,7 @@ JavaScript 中使用 `-` 来做减法运算。
**示例**
```js
myVar = 12 - 6;
const myVar = 12 - 6;
```
现在,变量 `myVar` 的值为 `6`
@ -49,11 +49,11 @@ assert(/difference=45-33;?/.test(__helpers.removeWhiteSpace(code)));
## --seed-contents--
```js
var difference = 45 - 0;
const difference = 45 - 0;
```
# --solutions--
```js
var difference = 45 - 33;
const difference = 45 - 33;
```

View File

@ -13,10 +13,11 @@ dashedName: testing-objects-for-properties
**示例**
```js
var myObj = {
const myObj = {
top: "hat",
bottom: "pants"
};
myObj.hasOwnProperty("top");
myObj.hasOwnProperty("middle");
```

View File

@ -14,14 +14,14 @@ dashedName: understand-string-immutability
例如,下面的代码:
```js
var myStr = "Bob";
let myStr = "Bob";
myStr[0] = "J";
```
是不会把变量 `myStr` 的值改变成 `Job` 的,因为变量 `myStr` 是不可变的。 注意,这*并不*意味着 `myStr` 永远不能被改变,只是字符串字面量 <dfn>string literal</dfn> 的各个字符不能被改变。 改变 `myStr` 的唯一方法是重新给它赋一个值,例如:
```js
var myStr = "Bob";
let myStr = "Bob";
myStr = "Job";
```
@ -55,7 +55,7 @@ assert(/myStr = "Jello World"/.test(code));
```js
// Setup
var myStr = "Jello World";
let myStr = "Jello World";
// Only change code below this line
myStr[0] = "H"; // Change this line
@ -65,6 +65,6 @@ myStr[0] = "H"; // Change this line
# --solutions--
```js
var myStr = "Jello World";
let myStr = "Jello World";
myStr = "Hello World";
```

View File

@ -43,7 +43,6 @@ welcomeToBooleans();
```js
function welcomeToBooleans() {
// Only change code below this line
return false; // Change this line

View File

@ -14,10 +14,12 @@ dashedName: understanding-undefined-value-returned-from-a-function
**示例**
```js
var sum = 0;
let sum = 0;
function addSum(num) {
sum = sum + num;
}
addSum(3);
```
@ -61,7 +63,7 @@ assert(
```js
// Setup
var sum = 0;
let sum = 0;
function addThree() {
sum = sum + 3;
@ -79,7 +81,7 @@ addFive();
# --solutions--
```js
var sum = 0;
let sum = 0;
function addThree() {
sum = sum + 3;

View File

@ -14,7 +14,7 @@ dashedName: updating-object-properties
举个例子,让我们看看 `ourDog`
```js
var ourDog = {
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
@ -54,7 +54,7 @@ assert(/"name": "Coder"/.test(code));
```js
// Setup
var myDog = {
const myDog = {
"name": "Coder",
"legs": 4,
"tails": 1,
@ -62,12 +62,13 @@ var myDog = {
};
// Only change code below this line
```
# --solutions--
```js
var myDog = {
const myDog = {
"name": "Coder",
"legs": 4,
"tails": 1,

View File

@ -16,8 +16,8 @@ dashedName: use-bracket-notation-to-find-the-nth-character-in-a-string
例如:
```js
var firstName = "Ada";
var secondLetterOfFirstName = firstName[1];
const firstName = "Ada";
const secondLetterOfFirstName = firstName[1];
```
`secondLetterOfFirstName` 值应该为字符串 `d`
@ -54,15 +54,15 @@ assert(code.match(/thirdLetterOfLastName\s*?=\s*?lastName\[.*?\]/));
```js
// Setup
var lastName = "Lovelace";
const lastName = "Lovelace";
// Only change code below this line
var thirdLetterOfLastName = lastName; // Change this line
const thirdLetterOfLastName = lastName; // Change this line
```
# --solutions--
```js
var lastName = "Lovelace";
var thirdLetterOfLastName = lastName[2];
const lastName = "Lovelace";
const thirdLetterOfLastName = lastName[2];
```

View File

@ -73,7 +73,7 @@ function rangeOfNumbers(startNum, endNum) {
if (endNum - startNum === 0) {
return [startNum];
} else {
var numbers = rangeOfNumbers(startNum, endNum - 1);
const numbers = rangeOfNumbers(startNum, endNum - 1);
numbers.push(endNum);
return numbers;
}

View File

@ -20,7 +20,7 @@ parseInt(string, radix);
这是一个示例:
```js
var a = parseInt("11", 2);
const a = parseInt("11", 2);
```
变量 radix 表示 `11` 是在二进制系统中。 这个示例将字符串 `11` 转换为整数 `3`

View File

@ -12,7 +12,7 @@ dashedName: use-the-parseint-function
`parseInt()` 函数解析一个字符串返回一个整数。 下面是一个示例:
```js
var a = parseInt("007");
const a = parseInt("007");
```
上述函数将字符串 `007` 转换为整数 `7`。 如果字符串中的第一个字符不能转换为数字,则返回 `NaN`

View File

@ -14,7 +14,7 @@ dashedName: using-objects-for-lookups
这是简单的反向字母表:
```js
var alpha = {
const alpha = {
1:"Z",
2:"Y",
3:"X",
@ -24,10 +24,11 @@ var alpha = {
25:"B",
26:"A"
};
alpha[2];
alpha[24];
var value = 2;
const value = 2;
alpha[value];
```
@ -102,7 +103,7 @@ assert(
```js
// Setup
function phoneticLookup(val) {
var result = "";
let result = "";
// Only change code below this line
switch(val) {
@ -136,9 +137,9 @@ phoneticLookup("charlie");
```js
function phoneticLookup(val) {
var result = "";
let result = "";
var lookup = {
const lookup = {
alpha: "Adams",
bravo: "Boston",
charlie: "Chicago",

View File

@ -16,7 +16,7 @@ dashedName: word-blanks
思考一下这句话 - It was really **\_\_\_\_**, and we **\_\_\_\_** ourselves **\_\_\_\_**。 这句话有三个缺失的部分 - 形容词、动词和副词,选择合适单词填入完成它。 然后将完成的句子赋值给变量,如下所示:
```js
var sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";
const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";
```
# --instructions--
@ -84,24 +84,24 @@ const removeAssignments = str => str
## --seed-contents--
```js
var myNoun = "dog";
var myAdjective = "big";
var myVerb = "ran";
var myAdverb = "quickly";
const myNoun = "dog";
const myAdjective = "big";
const myVerb = "ran";
const myAdverb = "quickly";
// Only change code below this line
var wordBlanks = ""; // Change this line
const wordBlanks = ""; // Change this line
// Only change code above this line
```
# --solutions--
```js
var myNoun = "dog";
var myAdjective = "big";
var myVerb = "ran";
var myAdverb = "quickly";
const myNoun = "dog";
const myAdjective = "big";
const myVerb = "ran";
const myAdverb = "quickly";
var wordBlanks = "Once there was a " + myNoun + " which was very " + myAdjective + ". ";
let wordBlanks = "Once there was a " + myNoun + " which was very " + myAdjective + ". ";
wordBlanks += "It " + myVerb + " " + myAdverb + " around the yard.";
```