Top Banner
JavaScript
60

JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

Jan 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

Page 2: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Like PHP, JavaScript is a modern programming language that is derived from the syntax at C.

• It has been around just about as long as PHP, also having been invented in 1995.

• JavaScript, HTML, and CSS make up the three languages defining most of the user experience on the web.

Page 3: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• To start writing JavaScript, open up a file with the .js file extension.

• No need for any code delimiters like we had in PHP. Our website will know that our file is JavaScript because we’ll explicitly tell it as much in an HTML tag.

• Unlike PHP which runs server-side, JavaScript applications run client-side, on your own machine.

Page 4: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Including JavaScript in your HTML

• Just like CSS with <style> tags, you can directly write your JavaScript between <script> tags.

• Just like CSS with <link> tags, you can write your JavaScript in separate files and link them in by using the src attribute of the <script> tag.

Page 5: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Including JavaScript in your HTML

• Just like CSS with <style> tags, you can directly write your JavaScript between <script> tags.

• Just like CSS with <link> tags, you can write your JavaScript in separate files and link them in by using the src attribute of the <script> tag.

Page 6: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Variables

• JavaScript variables are similar to PHP variables.• No type specifier.

• When a local variable is first declared, preface with the var keyword.

Page 7: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Variables

• JavaScript variables are similar to PHP variables.• No type specifier.

• When a local variable is first declared, preface with the var keyword.

$x = 44;

Page 8: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Variables

• JavaScript variables are similar to PHP variables.• No type specifier.

• When a local variable is first declared, preface with the var keyword.

$x = 44;

Page 9: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Variables

• JavaScript variables are similar to PHP variables.• No type specifier.

• When a local variable is first declared, preface with the var keyword.

var x = 44;

Page 10: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Conditionals

• All of the old favorites from C are still available for you to use.

if

Page 11: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Conditionals

• All of the old favorites from C are still available for you to use.

ifelse if

Page 12: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Conditionals

• All of the old favorites from C are still available for you to use.

ifelse ifelse

Page 13: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Conditionals

• All of the old favorites from C are still available for you to use.

ifelse ifelse

switch

Page 14: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Conditionals

• All of the old favorites from C are still available for you to use.

ifelse ifelse

switch?:

Page 15: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops

• All of the old favorites from C are still available for you to use.

Page 16: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops

• All of the old favorites from C are still available for you to use.

while

Page 17: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops

• All of the old favorites from C are still available for you to use.

whiledo-while

Page 18: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops

• All of the old favorites from C are still available for you to use.

whiledo-while

for

Page 19: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions

• All functions are introduced with the function keyword.

• JavaScript functions, particularly those bound specifically to HTML elements, can be anonymous—you don’t have to give them a name!• We’ll revisit anonymity a little later, and we’ll revisit “binding to

HTML elements” in the video on the Document Object Model.

Page 20: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Arrays

• Declaring an array is pretty straightforward.

Page 21: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Arrays

• Declaring an array is pretty straightforward.

var nums = [1, 2, 3, 4, 5];

Page 22: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Arrays

• Declaring an array is pretty straightforward.

var nums = [1, 2, 3, 4, 5];var mixed = [1,

true,3.333,‘five’];

Page 23: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• JavaScript has the ability to behave as an object-orientedprogramming language.• By contrast, C is a functional programming language.

• JavaScript can behave like a functional programming language, too.

• An object is sort of analogous to a C structure.

Page 24: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

Page 25: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

struct car{

int year;char model[10];

}

Page 26: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

struct car{

int year;char model[10];

}

struct car herbie;

Page 27: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

struct car{

int year;char model[10];

}

struct car herbie;herbie.year = 1963;herbie.model = “Beetle”;

Page 28: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

struct car{

int year;char model[10];

}

struct car herbie;year = 1963;model = “Beetle”;

Page 29: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

struct car{

int year;char model[10];

}

struct car herbie;year = 1963;model = “Beetle”;

Page 30: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• C structures contain a number of fields, which we might also call properties.• But the properties themselves can not ever stand on their own.

• Objects, meanwhile, have properties but also methods, or functions that are inherent to the object, and mean nothing outside of it.• Thus, like properties can methods not ever stand on their own.

Page 31: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

function(object);

Page 32: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

function(object);

Page 33: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

object.function();

Page 34: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• The fields and methods of an object are similar in spirit to the idea of an associative array, with which we’re familiar from PHP.

Page 35: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Objects

• The fields and methods of an object are similar in spirit to the idea of an associative array, with which we’re familiar from PHP.

var herbie = {year : 1963, model: ‘Beetle’};

Page 36: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

• How do we iterate across all of the key-value pairs of an object (or indeed, all of the elements of an array)?

Page 37: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

• How do we iterate across all of the key-value pairs of an object (or indeed, all of the elements of an array)?

foreach($array as $key){

// use $key in here as a stand-in for $array[$i]}

Page 38: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

• How do we iterate across all of the key-value pairs of an object (or indeed, all of the elements of an array)?

foreach($array as $key){

// use $key in here as a stand-in for $array[$i]}

Page 39: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

• How do we iterate across all of the key-value pairs of an object (or indeed, all of the elements of an array)?

for (var key in object){

// use object[key] in here}

Page 40: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

• How do we iterate across all of the key-value pairs of an object (or indeed, all of the elements of an array)?

for (var key of object){

// use key in here}

Page 41: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

var wkArray = [‘Monday,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’, ‘Saturday’,‘Sunday’];

Page 42: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

var wkArray = [‘Monday,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’, ‘Saturday’,‘Sunday’];

for (var day in wkArray){

console.log(day);}

Page 43: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Loops (redux)

var wkArray = [‘Monday,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’, ‘Saturday’,‘Sunday’];

for (var day of wkArray){

console.log(day);}

Page 44: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Printing and variable interpolation

console.log(wkArray[day] . ‘ is day number ’ . (day + 1) . ‘ of the week!’);

Page 45: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Printing and variable interpolation

console.log(wkArray[day] + ‘ is day number ’ + (day + 1) + ‘ of the week!’);

Page 46: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Printing and variable interpolation

console.log(wkArray[day] + ‘ is day number ’ + (day + 1) + ‘ of the week!’);

Page 47: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Printing and variable interpolation

console.log(wkArray[day] + ‘ is day number ’ + (parseInt(day) + 1) +‘ of the week!’);

Page 48: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions (redux)

• Arrays are a special case of an object (in fact, everything in JavaScript is a special case of an object), and has numerous methods that can applied to them:• array.size(), array.pop(), array.push(x), array.shift();

• There is also a method for arrays called map(), which can be used to apply a function to all elements of an array.• A great situation to use an anonymous function

Page 49: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions (redux)

var nums = [1, 2, 3, 4, 5];

Page 50: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions (redux)

nums = nums.map(function(num) {

return num * 2;

});

var nums = [1, 2, 3, 4, 5];

Page 51: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions (redux)

nums = nums.map(function(num) {

return num * 2;

});

var nums = [1, 2, 3, 4, 5];

Page 52: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Functions (redux)

nums = nums.map(function(num) {

return num * 2;

});

var nums = [2, 4, 6, 8, 10];

Page 53: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Events

• An event in HTML and JavaScript is a response to user interaction with the web page.• A user clicks a button, a page has finished loading, a user has

hovered over a portion of the page, the user typed in an input field.

• JavaScript has support for event handlers, which are callback functions that respond to HTML events.• Many HTML elements have support for events as an attribute.

Page 54: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

<html>

<head>

<title>Event Handlers</title>

</head>

<body>

<button onclick=“”>Button 1</button>

<button onclick=“”>Button 2</button></body>

</html>

Page 55: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

<html>

<head>

<title>Event Handlers</title>

</head>

<body>

<button onclick=“”>Button 1</button>

<button onclick=“”>Button 2</button></body>

</html>

Page 56: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

• Events

• We can write a generic event handler in JavaScript, creating an event object, that will tell us which of these two buttons was clicked.

Page 57: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

<html>

<head>

<title>Event Handlers</title>

</head>

<body>

<button onclick=“alertName(event)”>Button 1</button>

<button onclick=“alertName(event)”>Button 2</button></body>

</html>

Page 58: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

function alertName(event)

{

var trigger = event.srcElement;

alert(‘You clicked on ’ + trigger.innerHTML);

}

Page 59: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

function alertName(event)

{

var trigger = event.srcElement;

alert(‘You clicked on ’ + trigger.innerHTML);

}

Page 60: JavaScriptcdn.cs50.net/2017/fall/shorts/javascript/javascript.pdf · 2017-11-07 · JavaScript •Events •An event in HTML and JavaScript is a response to user interaction with

JavaScript

function alertName(event)

{

var trigger = event.srcElement;

alert(‘You clicked on ’ + trigger.innerHTML);

}