1 / 56

CS101 Introduction to Computing Lecture 29 Functions & Variable Scope (Web Development Lecture 10)

CS101 Introduction to Computing Lecture 29 Functions & Variable Scope (Web Development Lecture 10). During the last lecture we had a discussion on Arrays. We found out why we need arrays We became able to use arrays in conjunction with the ‘ for ’ loop for solving simple problems. Array.

geraldine
Télécharger la présentation

CS101 Introduction to Computing Lecture 29 Functions & Variable Scope (Web Development Lecture 10)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS101 Introduction to ComputingLecture 29Functions & Variable Scope(Web Development Lecture 10)

  2. During the last lecture we had a discussion on Arrays • We found out why we need arrays • We became able to use arrays in conjunction with the ‘for’ loop for solving simple problems

  3. Array An indexed list of elements A variable is a container that holds a value Similarly, an Array can be considered a container as well, but this one is more interesting as it can hold multiple values

  4. Array fruit[ 0 ] Square bracket Index Identifier

  5. Arrays in JavaScript • In JavaScript, arrays are implemented in the form of the ‘Array’ object • The key property of the ‘Array’ object is ‘length’, i.e the number of elements in an array • Two of the key ‘Array’ methods are: • reverse( ) • sort( ) • Elements of an array can be of any type; you can even have an array containing other arrays

  6. Today’s Goal:Functions & Variable Scope • To be able to understand the concept of functions and their use for solving simple problems • To become familiar with some of JavaScript’s built-in functions • To become familiar with the concept of local and global variables

  7. Function A group of statements that is put together (or defined) once and then can be used (by reference) repeatedly on a Web page Also known as subprogram, procedure, subroutine

  8. From the last lecture … words = new Array ( 10 ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { words[ k ] = window.prompt( "Enter word # "+ k,"") ; } document.write( "UNSORTED WORDS:" + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } words.sort( ) ; document.write( "SORTED WORDS:" + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; }

  9. words = new Array ( 10 ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { words[ k ] = window.prompt( "Enter word # " + k, "" ) ; } document.write( "UNSORTED WORDS:" + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } words.sort( ) ; document.write( "SORTED WORDS:" + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; }

  10. The function is called here and in the next box The function is defined here function writeList( heading, words ) { document.write( heading + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } } words = new Array ( 10 ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { words[ k ] = window.prompt( "Enter word # "+ k,"") ; } writeList( “Unsorted Words:”, words ) ; words.sort( ) ; writeList( “Sorted List:”, words ) ;

  11. Advantages of Functions • Number of lines of code is reduced • Code becomes easier to read & understand • Code becomes easier to maintain as changes need to be made only at a single location instead multiple locations

  12. function writeList( heading, words ) { document.write( heading + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } } words = new Array ( 10 ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { words[ k ] = window.prompt( "Enter word # "+ k,"") ; } writeList( “Unsorted Words:”, words ) ; words.sort( ) ; writeList( “Sorted List:”, words ) ; Let’s us see if we can redouble the advantage

  13. function writeList( heading, words ) { document.write( heading + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } } words = new Array ( 10 ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { words[ k ] = window.prompt( "Enter word # "+ k,"") ; } writeList( “Unsorted Words:”, words ) ; words.sort( ) ; writeList( “Sorted List:”, words ) ; words.reverse( ) ; writeList( “Reverse-Sorted List:”, words ) ;

  14. Keyword Pair of parenthesis Function definition enclosed in a pair of curly braces Function identifier Function ‘arguments’ separated by commas function writeList( heading, words ) { document.write( heading + "<BR>" ) ; for ( k = 0 ; k < words.length ; k = k + 1 ) { document.write( words[ k ] + "<BR>") ; } }

  15. Function Identifiers The naming rules for function identifiers are the same as were discussed for variable and array identifiers

  16. Arguments of a Function • A comma-separated list of data • Arguments define the interface between the function and the rest of the Web page • Arguments values are passed to the function by value (some popular languages pass arguments ‘by reference’ as well)

  17. To ensure that a function is defined before it is called up, define all functions in the HEAD portion of Web pages

  18. Two Ways of Calling Functions function popUp( message ) { window.alert( message ) ; } popUp( “Warning!”) ; A function call appearing as a complete statement function add( a, b ) { c = a + b ; return c ; } sum = add( 2, 4 ) ; document.write( sum ) ; A function call appearing as part of a statement. Definitions of such functions include a ‘return’ statement

  19. function popUp( message ) { window.alert( message ) ; } popUp(“Warning!”) ; What will get written by this statement? function popUp( message ) { window.alert( message ) ; } a = popUp(“Warning!”) ; document.write( a ) ; undefined

  20. function add( a, b ) { c = a + b ; return c ; } sum = add( 2, 4 ) ; document.write( sum ) ; What would this statement do? What would this modifica-tion do? function add( a, b ) { c = a + b ; return c ; } add( 2, 4 ) ; function add( a, b ) { c = a + b ; return c ; } document.write(add(2,4));

  21. Another Example 5! = 120 function factorial( n ) { product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write(n, "! = ", factorial( n ) ) ; 0! = ?

  22. What Would this Statement Do? factorial( factorial ( 3 ) ) ; This is termed as the recursive use of a function

  23. functionmethod ?

  24. Methods • Methods are functions • They are unusual in the sense that they are stored as properties of objects

  25. Object:A named collection of properties (data, state) & methods (instructions, behavior) A collection of properties & methods All objects have the “name” property: it holds the name of the object (collection) name method 2 prop1 prop 3 prop 5 prop 2 method 3 method 1 prop 4

  26. Object:A named collection of properties A collection of properties All objects have the “name” property: it holds the name of the object (collection) name prop 8 prop1 prop 3 prop 5 prop 2 prop 7 prop 6 prop 4

  27. functionevent handler ?

  28. Event Handlers • Special-purpose functions that come predefined with JavaScript • They are unusual in the sense that they are many times called in the HTML part of a Web page and not the <SCRIPT>…</SCRIPT> part • More on event handlers in a future lecture

  29. Predefined, Top-Level or Built-In Functions The dictionary meaning of ‘Parse’: To breakdown into simpler components and analyze • Event handlers are not the only functions that come predefined with JavaScript. There are many others. • Practically, there is no difference between predefined functions and those that are defined by the programmer (termed as user-defined or custom functions) • There are many of them, but here we discuss only two: parseInt( ), parseFloat( )

  30. parseInt( ) Syntax: parseInt ( string ) string1 =“3.14159” ; document.write( parseInt( string1 )) ; document.write( “<BR>” ) ; string2 =“$100.00” ; document.write( parseInt( string2 ) ) ; document.write( “<BR>” ) ; string3 =“ 23 ” ; document.write( parseInt( string3 )) ; 3 NaN 23

  31. parseInt( ) • Parses the string argument; returns an integer • If itencounters a non-numeral - anything other than (+,-) or (0-9) - it ignores it and all succeeding characters, and returns the integer value parsed up to that point

  32. parseInt( ) • If the first character cannot be converted to a number, parseInt returns NaN • parseInttruncates numbers to integer values • Leading and trailing spaces are ignored

  33. parseFloat( ) Syntax: parseFloat ( string ) string1 =“3.14159” ; document.write( parseFloat( string1 )) ; document.write( “<BR>” ) ; string2 =“$100.00” ; document.write( parseFloat( string2 ) ) ; document.write( “<BR>” ) ; string3 =“ 23E-15 ” ; document.write( parseFloat( string3 )) ; 3.14159 NaN 2.3E-14

  34. parseFloat( ) • Parses the string argument; returns a FP number • If it encounters a character other than • A sign (+,-) • A numeral (0-9) • A decimal point • An exponent it returns the value up to that point, ignoring that and all succeeding characters

  35. parseFloat( ) • If the first character cannot be converted to a number, parseFloat returns NaN • Leading and trailing spaces are ignored

  36. Scope of Variable Defining the space in which a variable is effective is known as defining the scope of a variable A variable can be either localorglobal in scope

  37. Local and Global Variables Local or Function-level Variable Effective only in the function in which they are declared Global Variables Visible everywhere on the Web page

  38. Example function factorial( n ) { product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write( “k = ”, k ) ; document.write( “<BR>” ) ; document.write(n, "! = ", factorial( n ) ) ; What would this statement write?

  39. function factorial( n ) { product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write( “k = ”, k ) ; document.write( “<BR>” ) ; document.write(n, "! = ", factorial( n ) ) ; Why does JavaScript think that ‘k’ is not defined?

  40. 10! = 3628800 k = 11 function factorial( n ) { product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write(n, "! = ", factorial( n ) ) ; document.write( “<BR>” ) ; document.write( “k = ”, k ) ;

  41. function factorial( n ) { var k ; product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write(n, "! = ", factorial( n ) ) ; document.write( “<BR>” ) ; document.write( “k = ”, k ) ;

  42. ‘k’ is a Local Variable • ‘k’ is not declared or used in the main code • Instead, it is declared within the function ‘factorial’ only • ‘k’ is local to the ‘factorial’ function, and does not hold any meaning outside that function

  43. Here ‘product’ has been made a local variable as well function factorial( n ) { var k, product ; product = 1 ; for ( k = 1 ; k <= n ; k = k + 1 ) { product = product * k } return product ; } n = window.prompt( "Enter a number ","") ; document.write(n, "! = ", factorial( n ) ) ; document.write( “<BR>” ) ; document.write( product ) ; What would this statement write?

  44. Local Variables • Declaring variables (using the var keyword) within a function, makes them local • They are available only within the function and hold no meaning outside of it

  45. Global Variables • All other variables used in a Web page (or window) are global • They can be manipulated from the main code as well as from any of the functions • They include: • All variables declared in the main code • All variables used but not declared in the main code • All variables used but not declared in any of the functions defined on the Web page (or window)

  46. var u ; document.write( m ) ; var a, b ; p = q + 2 ; r = s ; var c, d ; x = y * y ; Variables declared within functions are local; all others global

More Related