feat: split JS challenge into two (#39044)
* feat: split JS challenge into two * fix/change-to-not-use-untaught-assignments Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
This commit is contained in:
@ -20,6 +20,10 @@
|
||||
"56533eb9ac21ba0edf2244a8",
|
||||
"Storing Values with the Assignment Operator"
|
||||
],
|
||||
[
|
||||
"5ee127a03c3b35dd45426493",
|
||||
"Assigning the Value of One Variable to Another"
|
||||
],
|
||||
[
|
||||
"56533eb9ac21ba0edf2244a9",
|
||||
"Initializing Variables with the Assignment Operator"
|
||||
|
@ -0,0 +1,105 @@
|
||||
---
|
||||
id: 5ee127a03c3b35dd45426493
|
||||
title: Assigning the Value of One Variable to Another
|
||||
challengeType: 1
|
||||
isHidden: false
|
||||
videoUrl: ''
|
||||
forumTopicId: 418265
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
<section id='description'>
|
||||
After a value is assigned to a variable using the <dfn>assignment</dfn> operator, you can assign the value of that variable to another variable using the <dfn>assignment</dfn> operator.
|
||||
|
||||
```js
|
||||
var myVar;
|
||||
myVar = 5;
|
||||
var myNum;
|
||||
myNum = myVar;
|
||||
```
|
||||
|
||||
The above declares a `myVar` variable with no value, then assigns it the value `5`. Next, a variable named `myNum` is declared with no value. Then, the contents of `myVar` (which is `5`) is assigned to the variable `myNum`. Now, `myNum` also has the value of `5`.
|
||||
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
|
||||
<section id='instructions'>
|
||||
Assign the contents of <code>a</code> to variable <code>b</code>.
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
|
||||
<section id='tests'>
|
||||
|
||||
```yml
|
||||
tests:
|
||||
- text: You should not change code above the specified comment.
|
||||
testString: assert(/var a;/.test(code) && /a = 7;/.test(code) && /var b;/.test(code));
|
||||
- text: <code>b</code> should have a value of 7.
|
||||
testString: assert(typeof b === 'number' && b === 7);
|
||||
- text: <code>a</code> should be assigned to <code>b</code> with <code>=</code>.
|
||||
testString: assert(/b\s*=\s*a\s*/g.test(code));
|
||||
```
|
||||
|
||||
</section>
|
||||
|
||||
## Challenge Seed
|
||||
|
||||
<section id='challengeSeed'>
|
||||
|
||||
<div id='js-seed'>
|
||||
|
||||
```js
|
||||
// Setup
|
||||
var a;
|
||||
a = 7;
|
||||
var b;
|
||||
|
||||
// Only change code below this line
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### Before Test
|
||||
|
||||
<div id='js-setup'>
|
||||
|
||||
```js
|
||||
if (typeof a != 'undefined') {
|
||||
a = undefined;
|
||||
}
|
||||
if (typeof b != 'undefined') {
|
||||
b = undefined;
|
||||
}
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
### After Test
|
||||
|
||||
<div id='js-teardown'>
|
||||
|
||||
```js
|
||||
(function(a, b) {
|
||||
return 'a = ' + a + ', b = ' + b;
|
||||
})(a, b);
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
## Solution
|
||||
|
||||
<section id='solution'>
|
||||
|
||||
```js
|
||||
var a;
|
||||
a = 7;
|
||||
var b;
|
||||
b = a;
|
||||
```
|
||||
|
||||
</section>
|
@ -9,23 +9,22 @@ forumTopicId: 18310
|
||||
|
||||
## Description
|
||||
<section id='description'>
|
||||
In JavaScript, you can store a value in a variable with the <dfn>assignment</dfn> operator.
|
||||
In JavaScript, you can store a value in a variable with the <dfn>assignment</dfn> operator (<code>=</code>).
|
||||
<code>myVariable = 5;</code>
|
||||
This assigns the <code>Number</code> value <code>5</code> to <code>myVariable</code>.
|
||||
Assignment always goes from right to left. Everything to the right of the <code>=</code> operator is resolved before the value is assigned to the variable to the left of the operator.
|
||||
If there are any calculations to the right of the <code>=</code> operator, those are performed before the value is assigned to the variable on the left of the operator.
|
||||
|
||||
```js
|
||||
var myVar;
|
||||
myVar = 5;
|
||||
myNum = myVar;
|
||||
```
|
||||
|
||||
This assigns <code>5</code> to <code>myVar</code> and then resolves <code>myVar</code> to <code>5</code> again and assigns it to <code>myNum</code>.
|
||||
First, this code creates a variable named <code>myVar</code>. Then, the code assigns <code>5</code> to <code>myVar</code>. Now, if <code>myVar</code> appears again in the code, the program will treat it as if it is <code>5</code>.
|
||||
</section>
|
||||
|
||||
## Instructions
|
||||
<section id='instructions'>
|
||||
Assign the value <code>7</code> to variable <code>a</code>.
|
||||
Assign the contents of <code>a</code> to variable <code>b</code>.
|
||||
</section>
|
||||
|
||||
## Tests
|
||||
@ -34,13 +33,9 @@ Assign the contents of <code>a</code> to variable <code>b</code>.
|
||||
```yml
|
||||
tests:
|
||||
- text: You should not change code above the specified comment.
|
||||
testString: assert(/var a;/.test(code) && /var b = 2;/.test(code));
|
||||
testString: assert(/var a;/.test(code));
|
||||
- text: <code>a</code> should have a value of 7.
|
||||
testString: assert(typeof a === 'number' && a === 7);
|
||||
- text: <code>b</code> should have a value of 7.
|
||||
testString: assert(typeof b === 'number' && b === 7);
|
||||
- text: <code>a</code> should be assigned to <code>b</code> with <code>=</code>.
|
||||
testString: assert(/b\s*=\s*a\s*;/g.test(code));
|
||||
|
||||
```
|
||||
|
||||
@ -54,7 +49,6 @@ tests:
|
||||
```js
|
||||
// Setup
|
||||
var a;
|
||||
var b = 2;
|
||||
|
||||
// Only change code below this line
|
||||
|
||||
@ -69,9 +63,6 @@ var b = 2;
|
||||
if (typeof a != 'undefined') {
|
||||
a = undefined;
|
||||
}
|
||||
if (typeof b != 'undefined') {
|
||||
b = undefined;
|
||||
}
|
||||
```
|
||||
|
||||
</div>
|
||||
@ -80,7 +71,7 @@ if (typeof b != 'undefined') {
|
||||
<div id='js-teardown'>
|
||||
|
||||
```js
|
||||
(function(a,b){return "a = " + a + ", b = " + b;})(a,b);
|
||||
(function(a){return "a = " + a;})(a);
|
||||
```
|
||||
|
||||
</div>
|
||||
@ -93,9 +84,7 @@ if (typeof b != 'undefined') {
|
||||
|
||||
```js
|
||||
var a;
|
||||
var b = 2;
|
||||
a = 7;
|
||||
b = a;
|
||||
```
|
||||
|
||||
</section>
|
||||
|
Reference in New Issue
Block a user