- Practice using const and let to declare variables in JavaScript
We've covered a lot of JavaScript concepts, but now it's time to put the concepts into practice. We'll start with variables.
When we want to run an experiment, we need to develop a hypothesis and we need to test it. In programming, we run tests to verify that programs behave the way we think they do. Tests help us identify bugs and judge how healthy our applications are.
We use tests to describe the program's behavior, just as you would in a professional coding environment, and we also use them as teaching tools. You are in charge of getting the tests to pass.
The structure of this lab — where its files and folders are located — looks roughly like the following:
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── index.js
├── node_modules/
├── package.json
└── test
└── indexTest.js
All labs will more or less have the same structure. (And non-lab lessons, for that matter, will still have CONTRIBUTING.md, LICENSE.md, and README.md files.)
Open up index.js
in your text editor. If you're using the Learn IDE, click the
blue "Open" button in the top right hand corner of the lesson. If you open up
that js-basics-variables-lab/
directory, you'll see a list of files (along
with a test/
directory). Click index.js
, and it will open in the editor.
In index.js
, you should see, well, nothing. We'll fix that soon.
Now open up test/indexTest.js
. Hey, there's something! What's all of this
stuff doing?
Note: The test/indexTest.js
has great info that we want to look at, but do
not edit this file otherwise you may have extra difficulty passing this lab.
A few lines down in the test/indexTest.js
file you will see:
describe('index.js', function () {
// there's stuff in here, too
});
describe
is a function provided by our test library, Mocha, and it's used to
hold our tests. After the word describe
is information about our tests. Tests
are used as a way to document the behavior of a function to developers. For
example, the next word describe
is followed by the word companyName
. Here
the test is telling us that the tests that come afterwards will be about
companyName
. Then comes the word it
, where you see the following:
it('is set as Scuber', function () {
// tests are here
});
This is telling us that the companyName
should be set to Scuber
. Finally,
filling in the missing part of the it
code, we see:
it('is set as Scuber', function () {
expect(companyName).to.equal('Scuber');
});
This example shows that the test expects companyName
to equal Scuber
. That
expect
and to.equal
are essentially doing the same thing as companyName == 'Scuber'
. In other words, expect(companyName).to.equal('Scuber')
is running
code that will have this first test pass if companyName
equals Scuber
and
fail if it does not.
Don't worry too much yet if it's hard to understand what is happening inside of
the test/indexTest.js
file. But it's a good idea to open up the file, and
gather the information that you can. We will also provide instructions in the
README.md
file that will allow you to complete the lab.
To run the tests, type learn
or learn test
in the terminal. (If you're using
the IDE, the terminal is the part below where you've been coding.) You should
now see the current status of the tests in the terminal. For the moment, all of
the tests fail. Let's figure out how to get one of them passing! (The rest will
be up to you.)
To get our first test to pass, we can open up our index.js
file, and write the
following:
let companyName = 'Scuber';
If you run learn
again, you'll see that our first test is now passing.
However, the second test, which is also about companyName
, is not yet passing.
It's not passing because it expects companyName
to be declared using a
different keyword than the let
keyword — it needs a keyword that is used
for variables that can't be changed...
Continue to work through the problems below. Keep in mind the general workflow for a lab:
- Run
learn test
. - Read the errors; vocalize what they're asking you to do.
- Write code; repeat steps 1 and 2 often until a test passes.
- Repeat as needed for further tests.
If you open up test/indexTest.js
, you will see the tasks in front of you:
companyName
— Inside thetest/indexTest.js
file, look at thedescribe
function call for thecompanyName
variable. The twoit
function calls inside thisdescribe
tell us the features ofcompanyName
we need to create. To review, in the firstit
function call, it says thatit
(companyName)is set as Scuber
. In the next line, you can see that the test checks to make sure this occurs by seeing ifcompanyName
equalsScuber
. So this means that you need to go to yourindex.js
file and declare a variable namedcompanyName
and set it equal toScuber
.- In the second
it
function call forcompanyName
, it says itis defined as a const
. The next line of code tests this. So you need to make sure that you are using the correct type of variable declaration such that attempting to reassign the variable throws an error. mostProfitableNeighborhood
andcompanyCeo
— Here we are getting more practice with declaring variables. Read the tests to see how you need to code these two variables to get the remaining tests passing.
js-basics-variables-lab-v-000's People
Forkers
szeidman saturn226 johnsontaiwo pianistps dschlauderaff brettcole mxdavis mekowalski ylhoony smithwebtek debjohnson33 kathleenconnell11 r0tiart samsonyuwono codykas lawrend jblair87 lqf2b8 curlsandcode mcanshlearnco dj-sf clackrone jingruzhang destro1234 halfields tgots7 mmmeyers colleenwilliams kwebster2 kromoser shoppersaysso tylerp33 scottibe fastmode coolercoderdude timcev1 jdville03 dropheaven morgvanny bhabig ultimatecrispy jminterwebs treverandersen bryanhou1 sensei100 michaelburak iamtraviscole mic0des das11706 cernanb jwolfe890 weezwo pbhagyashri gb23 swu01 dande313 wsaxe jwdolan cecilydowns bartekswistak jschles1 paaaarv magpiemac alecgalba mconover4 joannasese rslim87 jimhotchkiss nakyunglee sarahcyrdesign aramell sidhe-is-me cpaules satkins16 tracypholmes christinalcole araf-rahman anniezh12 natgit8 joeycho aleksandrrogachev94 andori8 chrisrobertspdx itzsaga krishl jenhaddock petitlapin86 jtb1137 spensation sabrina-jones pelgile amelieoller aimeemcgrenera hansenjl ccordova41 laramontana xirinia crawfordmikyle rmandelbaum kpiipariRecommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.