introjs.notebook march 02, 2014 - bristol community...

40
introJS.notebook 1 March 02, 2014

Upload: others

Post on 30-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

1

March 02, 2014

Page 2: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

2

March 02, 2014

This code is embedded within a very basic HTML structure with no information other than the opening and closing html tags.Within the tag we need to tell the browser that it will be actuallydealing with JavaScript and we do this with the <script> tag whichtells the browser that the type is text/javascript. Note that javascriptis considered the default so you really only have to enter <script). However, I still use it a lot for documentation.

The alert function or method generates a popup box that will display the literal Hello World!. Since it is a literal it is enclosed in quotes and it is within the parenthesis belonging to the function or method.

document.write() uses the write method to writeon the document. It writes the literal Hello World!which is enclosed in quotes since it is a literal and then enclosed in the () of the write method.

Extra information: "Why is alert() a method of the window object?When I first came across alert(), I wondered why it is method of the window object and not of the document. The answer lies in the fact that the document object defines only the space in the browser window where an HTML document is displayed. The window object determines the entire browser area including the title bar, status bar, the buttons etc. The alert box pops up because of the browser and not the HTML document. Write() on the other hand specifies what has to be written inside the HTML space and hence is a method of the document object." webdevelopersnotes.com

To see the source codethat generated the page­ in other words the JavaScript, you right click and select view source or view page source etc depending on the browser.

Please note, Explorerhas restrictions on popups so it is better to run these scripts using a browser other than Explorer.

Page 3: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

3

March 02, 2014

Now I am looking at multiply.html which prompts the user for two numbers and then does a multiply. I entered a 5 for the first number and when I am prompted for a second number I will enter a 6.

depen

Page 4: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

4

March 02, 2014

Here I have defined threevariables. I have giventhem a name andestablished an initial value. This means thatthere are three memoryareas set up to holdinformation and right nowthey are all set to 0.Note that JavaScriptdoes not require youto specify a data type.The data type is determined by content.

Next I am prompting the user using a popup. I have theheader or message saying "Enter the first number" on the first one and the box for the user to fill in will have a0 in it before the user types in a number.

Next I am doing a calculation. I am taking thecontent of firstnum which is a 5 and the content of secondnum which is a 6 andI am using the * to multiply them together.The result is assigned to the memory variable ans.Note that the = is an assignment sign.That means do the calculation on the rightand assign it to the answer on the left.

Finally I write the ans onto the document.

Variables are definedwith the word varand their name shouldbe letters, numbers, something like the underscore and no embedded spaces.

Page 5: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

5

March 02, 2014

I added a literal to the document.write so it is writing a literal (the words) and the content of the variable ans.

The literal enclosed in quotes.

Theseparator

The variable name ­ the contents of thevariable will be displayed. Note this cannotbe in quotes or you would see the wordans.

Note that there is a space afteris inside the literal so when itis written on the document therewill be a space between the isand the answer.

Page 6: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

6

March 02, 2014

Here I put in a numeric literal. Numeric literals do not have to be enclosed in quotes. I also put ans in quotes to show you that error. The word ansis displayed instead of the contents of the ans variable.Note that there is no space between the two things I am writing.

Page 7: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

7

March 02, 2014

Now I am looking at addnum.html which is prompting me for a number. It will then prompt for a second number as shown on the next slide.

Page 8: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

8

March 02, 2014

Page 9: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

9

March 02, 2014

My first calculation simply usesa + between the two variablesto do the add, but there isa problem. The result is thetwo numbers (12 and 5) concatenated together. This is because the + can mean addor it can mean concatenate.

In my secondcalculate, I usedparseFloat to convert the datato a floating ordecimal number.Now JavaScriptassumes that giventwo numbers it shoulduse the + to add.

The rule is that the + operator performs addition when used in a mathematical expression and performs concatenation when used in a string or text expression. So to convince JavaScript that the two variables are numbers so I want to do a mathematical operation I have to go through the conversion process.

Continued on nextslide.

Page 10: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

10

March 02, 2014

This writes out the literal <br> by enclosing it inquotes and then parenthesis. When thebrowser sees the <br> it knows it should movedown to the next line.I could also have put the <br> inside the literal on the line I am writing so I could have written:

document.write("<br>The answer is ", otherans);

This puts the <br> inside parenthesis as well.

parseFloat converts to a floating number which allows decimal points. I can also use parseInt to convert to an integer so I could have written:otherans = parseInt(firstnum) + parseInt(secondnum);

Page 11: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

11

March 02, 2014

Notice that two numbers are addedbut one number and a variable (I entered 5 for firstnum) are concatenated.

Page 12: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

12

March 02, 2014

I entered 1.23I entered 5.67

When they are concatenated I get 1.235.67

This shows conversion can bedone with parseFloat ora + outside the parenthesis orthe word Number outside theparenthesis.

Page 13: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

13

March 02, 2014

Now I am looking at mathans.html.First it prompts for a number ­ I am entering 10.Next it will prompt for another number and I am going to enter 5.

Page 14: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

14

March 02, 2014

The third prompt asks for an * or a /. This time I am going to enter an * and click OK.

Page 15: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

15

March 02, 2014

It comes back and tells me 50 because it multiplied the 10 that I entered by the 5 that I entered and that is 50.

<html><script type="text/javascript">var ans = 0;var firstnum = 0;var secondnum = 0;var whattodo;firstnum = prompt("Enter the first number",0);secondnum = prompt("Enter the second number",0);whattodo = prompt("Enter * or /","");if (whattodo == "*") ans = firstnum * secondnum; else ans = firstnum / secondnum; document.write("The answer is ", ans);</script></html>

Now I want to test and see if I entered a *at the third prompt. So I test by asking ifwhattodo == "*". Notice that when I do acomparison in JavaScript, I use the == tocompare. Remember a single = is anassignment sign that assigns something toan answer.So, I write it and I put the condition inparenthesis. The condition is testingif whattodo = "*" and the * is a non­numericliteral so it is enclosed in quotes.

When I write an if, the actions that I want to take are enclosed in curly braces. In this case if the statement is true, I want to multiply and store the result in ans.Then I have an else and I enclose what I want to do if the if is not true in culry braces as well. In this case I want to divide.

Finally I write out the literal that says The answer is followed by the comma separator and the contents of ansso I get:The answer is 50.The logic here tests for * but anything else will be a divide. So if I enter a Z

at the third prompt which means whattodo is a Z it will test to see if whattodo is an * and since it is not, it will take the else and do a divide.

Page 16: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

16

March 02, 2014

<html><script type="text/javascript">var ans = 0;var firstnum = 0;var secondnum = 0;var whattodo;firstnum = prompt("Enter the first number",0);secondnum = prompt("Enter the second number",0);whattodo = prompt("Enter * or /","");if (whattodo == "*") ans = firstnum * secondnum; else ans = firstnum / secondnum; document.write("The answer is ", ans);</script></html>

start

set variables

take infirstnum

take insecondtnum

take inwhattodo

whattodo= "*"

ans=firstnum* secondnum

ans=firstnum/ secondnum

writeans

end

YN

When I need to ask a question/makea decision, I have two possibilities:Yes or True is one possibility, No orFalse is the other possibility. The flowchart shows the processingif Y and the processing if N.

If whattodo is *then do the Yesor True processing.

If whattodo is not *than do the No orFalse processing

Page 17: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

17

March 02, 2014

Page 18: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

18

March 02, 2014

In this example, I took in 10 as firstnum and 5 as secondnum and / as whattodo.Since whattodo is not equal to a * the else is taken and the divide is done. The answer is written out as 2.

Page 19: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

19

March 02, 2014

This time I entered 10 for firstnum,5 for secondnum and M for whattodo.

Page 20: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

20

March 02, 2014

Since I entered M to be assigned to whattodo, I do not have an* so I take the else and do a divide. The answer is 10/5 so it is 2.

So my next thought is to ask specifically if it is a divide and dosomething else if it is not. For simplicity, I am going to store a 0in ans if something other than a * or a / is done. I will start this on the next slide.

Page 21: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

21

March 02, 2014

N Y

ans=firstnum/ secondnum

ans=firstnum* secondnum

whattodo= "*"

whattodo= "/"

ans=0

<html><script type="text/javascript">var ans = 0;var firstnum = 0;var secondnum = 0;var whattodo;firstnum = prompt("Enter the first number",0);secondnum = prompt("Enter the second number",0);whattodo = prompt("Enter * or /","");if (whattodo == "*") ans = firstnum * secondnum; else if (whattodo == "/") ans = firstnum / secondnum; else ans = 0; document.write("The answer is ", ans);</script></html>

YN

I ask the first question and if whattodo is an * thenI take the Y branch and multiply else I take the Nbranch and ask if whattodo is a /. If it is I take theY branch and divide else I take the N branch andassign 0 to ans.

True orYes

False orNoInside thisI am askinganother decision.

T or Y

For N

Page 22: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

22

March 02, 2014

I entered 10, 5, M and the ans is set to 0 since whattodo is neither an * or a /.

Page 23: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

23

March 02, 2014

I entered 9, 3, / so whattodo is not * but it is / so 9 is dividedby 3 and the answer of 3 is assigned to ans.

Page 24: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

24

March 02, 2014

Next I asked the class to first flowchart and then make changes to the program so that if a + was entered an add would happen and if a ­ was entered a subtract would happen. If anything else was entered ans was set to 0. This was from the CIS120 class on February 27, 2014

On the next page I will look at thepseudocode.

Page 25: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

25

March 02, 2014

if whattodo = * ans = firstnum * secondnumelse if whattodo = / ans = firstnum / secondnum else if whattodo = + ans = firstnum + secondnum else if whattodo = ­ ans = firstnum ­ secondnum else ans = 0

Now I am going to put in the first set of curly braces. These tell what to do if the first condition is true and what to do if the firstcondition is false.

if whattodo = * ans = firstnum * secondnum else if whattodo = / ans = firstnum / secondnum else if whattodo = + ans = firstnum + secondnum else if whattodo = ­ ans = firstnum ­ secondnum else ans = 0

Now I am going to put in the second set of curly braces. These tell what to do if the second condition which is inside the else is true and what to do if the second condition is false.

if whattodo = * ans = firstnum * secondnum else if whattodo = / ans = firstnum / secondnum else if whattodo = + ans = firstnum + secondnum else if whattodo = ­ ans = firstnum ­ secondnum else ans = 0

Now I am going to put in the third set of curly braces. These tell what to do if the third condition is true and what to do if the third condition is false.

if whattodo = * ans = firstnum * secondnum else if whattodo = / ans = firstnum / secondnum else if whattodo = + ans = firstnum + secondnum else if whattodo = ­ ans = firstnum ­ secondnum else ans = 0

Now I am going to put in the fourth set of curly braces. These tell what to do if the fourth condition is true and what to do if the fourth condition is false.

if whattodo = * ans = firstnum * secondnum else if whattodo = / ans = firstnum / secondnum else if whattodo = + ans = firstnum + secondnum else if whattodo = ­ ans = firstnum ­ secondnum else ans = 0

Page 26: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

26

March 02, 2014

Now I have added the addition and changed the pseudocode to JavaScript by adding parenthesis, quotes and == etc.

This is where the subtract will go.

Page 27: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

27

March 02, 2014

Now I have added the subtract.

Finally I have to tell what to do if none of the conditions are true. That will go between these two sets of curly braces.

Page 28: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

28

March 02, 2014

Note I should have changed this to list all 4 things you can enter.Enter * or / or + or ­

Page 29: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

29

March 02, 2014

I entered 12, 3, + so I added 12 and 3 and assigned the result to ans.

Page 30: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

30

March 02, 2014

I entered 12, 3 and ­ so the result assigned to ans is 9.

Page 31: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

31

March 02, 2014

Looking at the script ifwithif.html

Page 32: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

32

March 02, 2014

myPoints< 10

msg=not enoughpoints for a prize

myPoints<= 50

msg=chooseprize group B

msg=chooseprize group A

writemsg

YN

N Y

I put in 112 so I am being told I can choose from group A.

Page 33: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

33

March 02, 2014

I entered Ann and MA. The if statement is checking for theState == "MA"OR theState == "RI". It is so the if it is true gets executed. Note that || means OR.

Remember + can mean concatenate. Here if theState meets the criteria, Iam writing the name I entered concatenated with the literal " you live in " (notice the spaces within the quotes) concatenated with theState.Then I put in the comma separator and the "<br"> to make it skip down aline. To be honest, there is no reason to skip down a line since I am notwriting anything out. On the next slide I revised this to show somethingelse being written.The literal "<br>" means pass the <br> and the browser knows that means skip a line.

Page 34: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

34

March 02, 2014

Note that I used a + to concatenate insteadof the comma separator.

After the if I write We are done and I write it beneath because the <br> tookme to a new line.

Page 35: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

35

March 02, 2014

This time I entered John and NY so I got the name concated with the message and the <br> isenclosed in the message which means the twoliterals have been combined as one.

Page 36: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

36

March 02, 2014

I entered Susan, 1970 and M so I did notmeet the criteria.

Note that && means AND. I am writing out a name concatenatedwith a message that includes a <br> toskip to the next line. Again I am not using it.

Page 37: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

37

March 02, 2014

I entered Ann and 1982 and M and F

This IF statement is saying thatyrBirth has to be greater than 1982and EITHER marStat must be M orgender must be F. I will try itagain putting in S instead of M formarStat.

Page 38: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

38

March 02, 2014

This time I put in Susan and 1982 and S and F.

> 1980 has to be true and either of the others must be true. This time marStatis not true but gender is true.

Page 39: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

39

March 02, 2014

This time I put in Linda and 1970 and M and F.

Since yrBirth was NOT > 1980 the rest did notmatter because the yrBirth criteria had to be true.See flowchart on next slide.

Page 40: introJS.notebook March 02, 2014 - Bristol Community Collegecisweb.bristolcc.edu/~pgrocer/JavaScriptBasics/introJS.pdf · introJS.notebook 2 March 02, 2014 This code is embedded within

introJS.notebook

40

March 02, 2014

yrBirth >1980

marStat = M

meetcriteria

meetcriteria

do notmeetcriteria

do notmeetcriteria

gender =F

N

N

N

Y

Y

Y

This shows the logic flowchartfor the situation where yrBirthmust be greater tha 1980AND either of the other two criteriamust be true.Meaning and either marStat = MOR gender = F.