Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.
Some "rules"
Tell us about yourself.
How your computer accesses websites
Each line in JavaScript is an instruction or a script
When the browser reads it, it "executes the script"
console.log('Hello');
Try it out in your Developer Tools console!
(cmd+alt+j / ctrl+alt+j)
Variables hold content
Words, numbers, true/false, basically any kind of content
Declare a variable (Give it a name)
var bananas;
Initialize variable (Give it a value)
bananas = 5;
Declare and initialize at the same time!
var bananas = 5;
Change value of variable
bananas = 4;
(I ate a banana)
string
—a group of characters in quotes
var fruit = "banana";
number
—(well, a number)
var pi = 3.14;
var year = 2013;
var bananaTally = 200;
boolean
—yes or no
var skyIsBlue = true;
var grassIsPink = false;
undefined
—no value yet
var favoriteDinosaur;
null
—a purposely empty value
(not the same as 0 or "")
var myTigersName = null;
Begin with a letter, _, or $
Contain letters, numbers, _ and $
var hello;
var _hello;
var $hello;
var hello2;
Names are case sensitive
var hello;
var Hello;
var heLLO;
Math-y expressions!
var bananas = 5;
var oranges = 2;
var fruit = bananas + oranges;
Symbol | Meaning |
---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
/ | Division |
% | Modulus |
++ | Increment |
-- | Decrement |
Word-y expressions!
var name = "Gloria";
var dinosaur = "Stegosaurus";
var sentence = "My dinosaur is a " + dinosaur + ". Its name is \"" + name + "\".";
Symbol | Meaning |
---|---|
+ | Concatenation |
/ | Escape |
Create a new html file
<!DOCTYPE html>
<html>
<head>
<title>My Site!</title>
</head>
<body>
My site!
</body>
</html>
Create a new JavaScript file (a file that ends in .js
)
console.log('Loaded my JavaScript file!');
Link it to your html file
<!DOCTYPE html>
<html>
<head>
<title>My Site!</title>
<script src="javascript.js"></script>
</head>
<body>
My site!
</body>
</html>
Lifetime Supply Calculator
Ever wonder how much a lifetime supply of your favorite snack or drink is?
alert(answer);
JavaScript can run through code based on conditions
if (condition here){
// statement to execute
}
var bananas = 1;
if (bananas < 2){
console.log("You should buy more bananas!")
}
// comment on one line
/* comment on
multiple lines
*/
=== | Equality |
!== | Inequality |
> | Greater than |
>= | Greater than or equal to |
< | Less than |
<= | Less than or equal to |
Don't confuse = (assign a value)
with === (compare a value)
&& | AND |
|| | OR |
! | NOT |
var bananas = 5;
var oranges = 2;
if (bananas > 3 && oranges > 3){
console.log('Eat fruit!');
}
if (bananas < 2 || oranges < 2){
console.log('Buy fruit!');
}
if (!(bananas >= 0)){
console.log('How do you have negative bananas?');
}
You can use else to perform an alternative action if the "if" fails
var bananas = 5;
if (bananas > 3){
console.log('Eat a banana!');
} else {
console.log('Buy a banana!');
}
You can use else if to have multiple choices
var age = 20;
if (age >= 35) {
console.log('You can vote AND hold any place in government!');
} else if (age >= 30) {
console.log('You can vote AND run for the House OR Senate!');
} else if (age >= 25) {
console.log('You can vote AND run for the House!');
} else if (age >= 18) {
console.log('You can vote!');
} else {
console.log('You have no voice in government (yet)!');
}
Add an if/else statement to our Lifetime Supply Calculator so that if the lifetime supply is greater than 40,000, you say "Wow! That's a lot!" otherwise, say "You seem pretty reasonable!"
Functions are re-usable collections of statements
function sayHi(){
console.log('Hi!');
}
sayHi();
Functions can take named arguments
function sayHi(name){
console.log('Hi' + name + '!');
}
sayHi('Gloria, the dinosaur');
sayHi('Harold, the hippo');
var name = 'Pip, the mouse';
sayHi(name);
Functions can take MULTIPLE named arguments
function addNumbers(num1, num2){
var result = num1 + num2;
console.log(result);
}
addNumbers(5, 6);
var number1 = 12;
var number2 = 15;
addNumbers(number1, number2);
Functions can return a value
function addNumbers(num1, num2){
var result = num1 + num2;
return result; //Anything after this line won't be read
}
var sum = addNumbers(5, 6);
JavaScript variables have "function scope." They are visible in the function where they are defined.
function addNumbers(num1, num2){
var result = num1 + num2;
return result; //Anything after this line won't be read
}
var sum = addNumbers(5, 6);
console.log(result); //will return undefined because result only exists inside the addNumbers function
Variables that are defined outside of a function are in the "global scope," and are visible to your entire script.
var result;
function addNumbers(num1, num2){
result = num1 + num2;
return result; //Anything after this line won't be read
}
var sum = addNumbers(5, 6);
console.log(result); //will return 11 because the variable was defined outside the function
If a function argument or variable declared in a function has the same name as a globally-scoped variable, the function will not use the global variable.
var result;
var num1 = 1;
var num2 = 2;
function addNumbers(num1, num2){
var result = num1 + num2;
return result;
}
var sum = addNumbers(5, 6);
console.log(result); //will return undefined because it was redeclared inside the function
console.log(sum); // will return 11 because addNumbers used the function arguments 5,6 not the global num1, num2
Wrap the Lifetime Supply Calculator in a function called calculate()
Add a button to the html that calls the function when it is clicked
<button type="button" onclick="calculate()">
Calculate lifetime supply
</button>
Modify your calculator to ask how old the user currently is, then use that value in your calculations.
Hint: use prompt()
What happens if the user hits "cancel" at the prompt or enters a string of text? Use if
and else if
statements to handle three unexpected inputs:
oldAge
.isNaN(age)
to check if age
is a numeric value.