Data Types
Objectives
- Describe the concept of a "data type" and how it relates to variables.
- Declare, assign to, and manipulate data stored in a variable.
- Create arrays and access values in them.
- Iterate over and manipulate values in an array.
Review
- Be comfortable navigating between folders on the command line.
- Run JavaScript on the command line using Node.js and use basic variables.
What is a Data Type?
In programming, a data type is a classification identifying one of various types of data.
Using data types, we can determine
- Possible values for that type;
- Operations that can be performed on values of that type;
- Meaning of the data; and
- Ways values of that type can be stored.
Strings
Single words or sentences surrounded by double or single quotes
"Kittens Are Awesome!!!"
"Cute"
"45"
"dfasdfsadjflsakdfj"
Integers
Whole numbers, with no delimiter
42
109
23423423
Floats
Decimals, with no delimiter
42.42
109.23423424
23423423.23423424234234
Note about Numbers
All numbers in JavaScript are "double-precision 64-bit format IEEE 754 values" ==> there's really no such thing as an integer in JavaScript.
Be a careful with your arithmetic if you're used to math in other programming languages.
0.1 + 0.2
=> 0.30000000000000004
Booleans
Represents either true or false |
true
false
Array
Ordered Collections of Data |
goldenGirls = ["Dorothy", "Blanch", "Sofia", "Rose"]
Object
Key/value paired Collections of Data |
bestHero = {
name: 'Aquaman',
power: ['swimming','being fabulous', 'lots of sea friends'],
hairGame: true,
}
Operators
Operators are build in symbols to be referenced in JavaScript – often are math mathematical symbols or used for checking if something is equal, more than, less than ect
Math Operators
2 + 2 // returns 4
4 - 2 // returns 2
4 / 2 // returns 2
4 * 2 // returns 8
// What does the following
// statement return?
"hello" + "world"
typeof()
checks the data type of whatever you pass it
typeof(37) === 'number';
=> true
typeof({}) === 'object';
=> true
typeof('hi there') === 'string';
=> true
Math.pow()
// 3^2 becomes
Math.pow(3,2)
=> 9
// 2^4 becomes
Math.pow(2,4)
=> 16
number to nth power
Math.sqrt()
// √(4) becomes
Math.sqrt(4)
=> 2
square root
Math.random()
// The following only returns a random decimal
Math.random()
=> 0.229375290430
/**
The following will return a
random number between 0 and 10
*/
Math.random()*10
get a random number
Math.random()
// Remove the decimal
Math.floor(3.14)
=> 3
Math.floor(3.9999)
=> 3
turn a float to a number
Variables
Think of variables as named buckets in which we can place one item
Start a Variable and assign a value to it
var a = 2;
var b = "kittens are cute";
var myArray = ['one', 'two'];
Once your variable is assigned, call it!
a ;
//returns 2
b;
// returns "kittens are cute"
myArray
// returns ['one', 'two']
Making a Variable checklist
- Instantiate with the keyword 'var'
- Use '=' to assign a value to it
- Call the variable AFTER it's assigned
- camelCase your variable names
reassigning
adding one using +=
Updating a variable
var a = 5;
a = 6;
a;
// returns 6
var a = 5;
a +=;
a;
// returns 6
++, --, -= can also
be used!
Arrays
Arrays are great for:
-
Storing data
-
Enumerating data (i.e., using an index to find them)
-
Quickly reordering data In essence, arrays compose a data structure that is similar in concept to a list. Each item in an array is called an element, and the collection can contain data of the same or different types. In JavaScript, arrays can dynamically grow and shrink in size.
var friends = ['Moe', 'Larry', 'Curly'];
=> ['Moe', 'Larry', 'Curly']
Arrays keep track of the positions of it's contents
// First friend
var firstFriend = friends[0];
=> 'Moe'
// Get the last friend
var lastFriend = friends[2]
=> 'Curly
array.length
var a = ["dog", "cat", "hen"];
a.length;
=> 3
get the length of your array
Arrays are zero indexed
var a = ['one', 'two', 'three'];
a[0];
// return 'one'
a[1];
// return 'two'
a[2];
// return 'three'
a.length;
// return 3
var a = new Array();
=> undefined
a[0] = "dog";
=> "dog"
a[1] = "cat";
=> "cat"
a[2] = "hen";
=> "hen"
a
=> ["dog", "cat", "hen"]
a.length;
=> 3
Making a new Array
var a = ["dog", "cat", "hen"];
a;
//returns ["dog", "cat", "hen"]
a[2];
// "hen"
var goods = new Array("water", "coffee")
Array Literal
'new' Keyword
var myArray = ['frogs','dogs','cats'];
myArray;
// returns ['frogs','dogs','cats']
var goods = new Array("water", "coffee")
goods;
//returns ['water', 'coffee']
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = ['foo', 'bar'], // these are the same
d = new Array('foo', 'bar'), // c and d are arrays with 2 strings
// these are different:
e = [3] // e.length == 1, e[0] == 3
f = new Array(3), // f.length == 3, f[0] == undefined
Use bracket notation to add values to the one of the arrays;
goods[2] = "beer"
use the .push() method for the other.
quantity.push(8)
Note on literal vs. 'new' array
=> 'Today, I consumed ' + quantity[0] + ' cups of ' + goods[0]
=> 'I am going to have ' + quantity[1] + ' cups of ' + goods[1] + ' tonight'
Accessing Elements from Arrays and Concatenating Them With Strings
Array Helper Methods
.push()
var message = []
message.push(8)
=> 1
message.push('r', 'e', 'b', 'm', 'u')
=> 6
message.push('n', 's', 'i', 'A', 'G', 'K')
=> 12
message
=> [ 8, 'r', 'e', 'b', 'm', 'u', 'n', 's', 'i', 'A', 'G', 'K' ]
.pop(), .shift(), & .unshift()
message.pop()
=> 'K'
message.shift()
=> 8
message.unshift(1)
=> 11
.reverse()
message.reverse()
=> [ 'G', 'A', 'i', 's', 'n', 'u', 'm', 'b', 'e', 'r', 1 ]
.join()
message.join()
=> 'G,A,i,s,n,u,m,b,e,r,1'
message.join(' ')
=> 'G A i s n u m b e r 1'
Iterating through an Array
For Loop
For every item in my array, do X action
var goldenGirls = ['Blanch', 'Dorothy', 'Rose', 'Sophia'];
for (var i = 0; i < goldenGirls.length; i++) {
console.log(goldenGirls[i]);
}
.forEach()
var goldenGirls = ['Blanch', 'Dorothy', 'Rose', 'Sophia'];
goldenGirls.forEach(function(el) {
console.log(el);
});
Other Array Iteration Methods
- Array.every()
- Array.some()
- Array.filter()
- Array.map()
Practicing Array Iteration
var evens = []
evens.push(2,4,6,8,10)
=> 5
var odds = []
odds.push(1,3,5,7,9)
=> 5
.every()
evens.every(function (num) {
return num % 2 === 0
})
=> true
evens.every(function (num) {
return num % 4 === 0
})
=> false
var odds = []
odds.push(1,3,5,7,9)
=> 5
.some( )
var array = [1, 2, 3, 4, 5];
var even = function(element) {
// checks whether an element is even
return element % 2 === 0;
};
console.log(array.some(even));
// expected output: true
.filter( )
var words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
.filter( )
var timesFive = evens.map(function (num) {
return num * 5
})
=> undefined
timesFive
=> [10, 20, 30, 40, 50]
var timesTen = odds.map(function (num) {
return num * 10
})
=> undefined
timesTen
=> [10, 30, 50, 70, 90]
Review
Review
- What is a Data Type
- Name the different Data Types
- What does "Iterate over an Array mean?
- What are some ways to iterate an array?
Homework
Madlibs
Due by Week 7
Homework: Madlibs
For this assignment, you'll create your own Startup Generator app. Open the files in the madlib with loops folder and start by reading the "instructions.md" file. You'll learn how to use helper methods and for loops. We have provided some starter code; while we haven't covered functions and DOM manipulation yet, this is a good chance for you to challenge yourself and get a head start on these topics.
July 23: Data Types
By Jessica Bell
July 23: Data Types
- 114