midterm review next wednesday 3 27 in class midterm
play

MIDTERM REVIEW NEXT WEDNESDAY (3/27): IN-CLASS MIDTERM CANNOT MAKE - PowerPoint PPT Presentation

CS 498RK SPRING 2019 MIDTERM REVIEW NEXT WEDNESDAY (3/27): IN-CLASS MIDTERM CANNOT MAKE IT? If for some special circumstance, you CANNOT make the in-class midterm, please email me ASAP. If we don't know about your special circumstance by


  1. CS 498RK SPRING 2019 MIDTERM REVIEW

  2. NEXT WEDNESDAY (3/27): IN-CLASS MIDTERM

  3. CANNOT MAKE IT? If for some special circumstance, you CANNOT make the in-class midterm, please email me ASAP. If we don't know about your special circumstance by 11.59pm today (03/25), we won't be able to accommodate you.

  4. FORMAT 3-4 multiple choice 2-3 short coding

  5. THINGS YOU SHOULD KNOW ABOUT THE MIDTERM Anything from lecture and MPs is fair game One-sheet of handwritten notes (front and back) Expect to write code: Javascript , HTML, CSS, SASS, React, Mongo Query Language Will test your ability to apply what you've learned in new situations -- NOT regurgitate memorized facts (i.e., history of HTML)

  6. HOW TO STUDY FOR MIDTERM Go through all the questions on slides Go through all code examples on slides/CODE PEN Review the challenging aspects of the MPs

  7. B e sur e t o revie w th e followin g topic s …

  8. STRUCTURAL SEMANTIC TAGS < body > < header > < h1 >How to Get a PhD</ h1 > < nav >...</ nav > </ header > < article > < section > < figure >< img src="benfranklin.jpg"></ figure > < h3 >Bribing your Committee</ h3 > < p >When blackmail fails...</ p > </ section > < aside > < h4 >Useful Links></ h4 > < a href="www.bevmo.com">Research Supplies</ a > </ aside > </ article > </ body >

  9. STRUCTURAL SEMANTIC APPLICATIONS?

  10. STRUCTURAL SEMANTIC APPLICATIONS < header > Reuse stylesheets < nav > Remix pages and applications < article > < article > Retarget between form factors < article >

  11. CSS SELECTORS <!DOCTYPE html> . photo { < html > width:300px; ... } < body > . photo h3 { < div class="photo"> font-weight:bold; < h3 >My first photo</ h3 > } < img src="picture1.jpg"/> img { </ div > border:1px solid black; ... } </ body > ... </ html > map HTML elements to CSS rules

  12. Which selectors promote the most reuse ?

  13. WHY CASCADING? more than one rule can apply to an HTML element priority rules for resolving conflicts more specific = higher priority (class trumps element) some properties ( font-size ) are inherited, while others aren’t ( border , background )

  14. LINKING TO HTML (1) <link rel=“stylesheet" href=“gallery.css" type="text/css"/> (2) <html> <head> < style > h1 {color:red;} p {color:blue;} </ style > (3) <div style ="color:blue;text-align:center"> highe r priorit y

  15. B ox Mode l MARGIN BORDER PADDING CONTENT control over white space

  16. position VALUE DESCRIPTION default. positioned by the flow model; static una ff ected by top, bottom, le fu , right positioned relative to browser window; fixed us e wit h will not move when window is scrolled top bottom positioned relative to its normal position relative left right positioned relative to the first ancestor absolute where position!=static

  17. Desig n Challeng e : vertically center a <div> of unknown height CODEPEN

  18. SOLUTION .table-outer { width: 100%; display: table; } cs s table s ! .outer { <div class=“table-outer"> height: 200px; <div class="outer"> background-color: #144057; <div class="inner"> </div> display: table-cell; </div> vertical-align: middle; </div> } .inner { width: 100px; height: 50%; background-color: #B6C4C9; }

  19. Separatio n of CONTENT fro m PRESENTATION? purel y presentationa l htm l ! <div class=“table-outer"> < div class="outer"> < div class="inner"></ div > </ div > </div> a lot of HTML su ff ers from presentational div bloat

  20. CSS PREPROCESSORS languages that extend CSS in meaningful ways features: variables, nesting, mixins, inheritance shrinks developer’s codebase and compiles into CSS popular CSS preprocessors: LESS and SASS

  21. JAVA : JAVASCRIPT :: :

  22. Functions are first-class objects

  23. FUNCTIONS ARE OBJECTS tha t ar e callabl e ! reference by variables, properties of objects pass as arguments to functions return as values from functions can have properties and other functions

  24. ANONYMOUS FUNCTIONS create a function for later use store it in a variable or method of an object se e mor e example s nex t use it as a callback clas s

  25. this th e othe r implici t paramete r a.k.a. function context object that is implicitly associated with a function’s invocation defined by how the function is invoked (not like Java)

  26. apply() an d call() two methods that exist for every function explicitly define function context apply(functionContext,arrayOfArgs) call(functionContext,arg1,arg2,…)

  27. function forEach(list, callback){ for (var n = 0; n < list.length; n++){ callback.call(list[n],n); } } var numbers = [5,3,2,6]; forEach(numbers, function(index){ numbers[index]= this*2;}); console.log(numbers);

  28. Classes are defined through functions

  29. OBJECT-ORIENTED PROGRAMMING new operator applied to a constructor function creates a new object no traditional class definition newly created object is passed to the constructor as this parameter, becoming the constructor’s function context constructor returns the new object

  30. CONSTRUCTOR INVOCATION constructo rs ar e give n th e clas s function Llama () { nam e this.spitted = false; this.spit = function() { this.spitted = true; } } var llama1 = new Llama(); llama1.spit(); console.log(llama1.spitted); true var llama2 = new Llama(); false console.log(llama2.spitted);

  31. prototype prototype is a property of the constructor another way to add methods to objects function Llama () { this.spitted = false; } Llama.prototype.spit = function() { this.spitted = true; };

  32. PROTOTYPE CHAINING if a property isn’t in Llama, look in Camelid, and so on var llama1 instanceof Camelid instanceof Llama property constructor property constructor Llama() Camelid() property prototype property prototype

  33. scopes are declared through functions and not blocks {}

  34. HOISTING Variables and functions are in scope within the entire function they are declared in

  35. closure scope created when a function is declared that allows the function to access and manipulate variables that are external to that function

  36. PRIVATE VARIABLES self- var add = (function () { invokin g var counter = 0; return function () {return counter += 1;} })(); add();

  37. PRIVATE VARIABLES privat e dat a membe r no w ! function Llama () { var spitted = false; this.spit = function() { spitted = true; } this.hasSpitted = function() { return spitted; } }

  38. DOCUMENT OBJECT MODEL one-to-one correspondence between HTML elements and DOM nodes BODY < body > < div class="photo"> < h3 >My first photo</ h3 > DIV < img src="picture1.jpg"/> </ div > ... H3 IMG </ body > “My first photo”

  39. TRAVERSING THE DOM BODY var body = document.body; var div = body.children[0]; DIV var h3 = div.children[0]; var textNode = h3.childNodes[0]; H3 IMG var textString = textNode.nodeValue; “My first photo” www.w3schools.com/jsref/dom_obj_all.asp

  40. DOM ELEMENT OBJECT relative to offsetParent MARGIN BORDER position: element.offsetTop , PADDING element.scrollTop , … CONTENT dimensions: element.clientWidth , clientWidth element.offsetWidth , … style: element.style offsetWidth (includes scrollbar) www.w3schools.com/jsref/dom_obj_all.asp

  41. DOM MANIPULATION programmatically change the structure and modify element properties element.style.backgroundColor = “red”; element.innerHTML = “<div><h3>Llama!</h3>…</div>” augment DOM structure: element.appendChild() , element.removeChild() , … www.w3schools.com/jsref/dom_obj_all.asp

  42. THE BROWSER EVENT LOOP Parse HTML and create DOM USER BROWSER Check for events Event Queue NETWORK TIMER NO Event? single-threaded: events YES processed one at a time Process event

  43. EVENT PROCESSING events propagate in two phases capture phase : root to innermost element bubble phase : innermost element to root DOM standard: capture then bubble

  44. EVENT PROCESSING element.addEventListener(event, function, useCapture) se t captur e o r bubbl e phas e event.stopPropogation() CODEPEN

  45. REACT COMPONENTS each module manages its own data and views how to write components and compose them

  46. REACT CONCEPTS Unidirectional data flow DOM Painting Virtual DOM How JSX works

  47. REACT CONCEPTS Props State Lifecycle Methods render & setState React Router

  48. ES6 Fat arrow functions let const

  49. CONTINUATION PASSING STYLE (CPS) function getY(continueWith) { $http.get(“/gety”, function(jsonData) { continueWith(jsonData.y); }); } var x = 5; getY(function(y) { console.log(x + y); });

  50. CALLBACK STYLE PROGRAMMING callbackhell.com

Recommend


More recommend