1 / 32

JavaScript – programovací jazyk

Michal Augustýn AVAST Software Microsoft Most Valuable Professional. JavaScript – programovací jazyk. Historie. LiveScript -> ECMAScript -> JavaScript jedna z derivací ECMAScriptu. http://www. smashingmagazine.com /2009/07/29/ misunderstanding - markup - xhtml -2- comic - strip /.

luana
Download Presentation

JavaScript – programovací jazyk

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. Michal Augustýn AVAST Software Microsoft Most Valuable Professional JavaScript – programovací jazyk

  2. Historie • LiveScript -> ECMAScript -> JavaScript • jedna z derivací ECMAScriptu http://www.smashingmagazine.com/2009/07/29/misunderstanding-markup-xhtml-2-comic-strip/

  3. Jak ho vidí programátoři • každý ho zná • jednoduchý • nikdo ho nemá rád • dělat v něm je za trest • nikdo ho pořádně neumí

  4. Vlastnosti • skriptovací jazyk • objektově orientovaný • prototypový • dynamický • slabě typovaný • má first-classfunction • funkcionální (closures a high-orderfunctions) • garbagecollector

  5. Typy (podle typeof) • number – 117, 015, 0x15, 3.14, 3.14E-3, NaN • string • boolean – true a false • undefined • function • object – null a ostatní objekty • ještě tu je operátor instanceOf

  6. Operátory • aritmetické, přiřazení, bitové – normální • logické - && a || • falsy: 0, false, null, undefined, “”, NaN • (0 && 10) === 0 • (0 || 10) === 10 • porovnání • striktní: ===, !== • type-converting: ==, != • 3 === “3” je false • 3 == “3” je true

  7. Function • length – počet parametrů • toString() • call(thisArg, arg1, arg2, arg3, …) • apply(thisArgs, args)

  8. Funkce (functiondeclaration)

  9. Funkce (functionexpression)

  10. Uzávěry

  11. Objekty • objectliteral

  12. Constructorfunction

  13. this • volání funkce prefixovanénew • volání metody – myCar.toString() • Function.call – myCar.toString.call(yourCar) • Function.apply

  14. Zapouzdření

  15. Vestavěné objekty • Boolean, Number, String • Date, RegExp, Math • Array

  16. Dědičnost • třída ~~ constructorfunction • dědičnost

  17. Prototypy • každá funkce má propertyprototype • má jen položku constructor

  18. Prototypy (2) • k ukládání statických vlastností

  19. Prototypy podrobněji • funkce (instance Function) má prototype • každý objekt má [[Prototype]] (__proto__) • var myCar = new Car(); • myCar.[[Prototype]] = Car.prototype; • co je v Car.[[Prototype]] ? • Function.prototype

  20. Dědičnost a prototypy

  21. Dědičnost a prototypy (2) BetterCar Car Function.prototype Function.prototype [[Prototype]] [[Prototype]] prototype prototype constructor constructor Object.prototype Object.prototype [[Prototype]] [[Prototype]] myBetterCar myCar [[Prototype]] [[Prototype]]

  22. Dědičnost a prototypy (3)

  23. Zajímavé funkce • instanceOf • myCarinstanceOfBetterCar • iteruje přes [[Prototype]] levého operandu • hledá BetterCar.prototype • getPrototypeOf

  24. Statements • if-else, switch, throw, while • try-catch-finally • try { blabla(); }catch (e if e instanceOfMyError) {}catch(e) {} • for (var i in object) // přes klíče • foreach (var i in object) // přes hodnoty

  25. Properties

  26. Shrnutí (1) • všechno je objekt, včetně funkcí • objekt je hashmapa • vytvoření objektu: • objectliteral (podobně jako JSON) • newKonstrukcniFunkce() • nějaký objekt je vždy aktuální – this • v prohlížečích window

  27. Shrnutí (2) • this lze změnit: • zavoláním metody objektu (objekt se stane thisem) • voláním newKonstrukcniFunkce() • apply • call • každá funkce má položku prototype, na kterou odkazují všechny instance vytvořené pomocí této funkce (přes skrytou položku [[Prototype]])

  28. Bonus – singleton (1)

  29. Bonus – singleton (2)

  30. Uzávěry (pokročilé)

  31. Appendix - verze • ECMAScript – 1-5 • JavaScript – 1.0 – 1.8.5 • 1.6 – EX4, foreach … in • 1.7 – generátory (yield), iterátory, let • 1.8 – expressionclosures • 1.8.1 – native JSON • 1.8.5 – nové metody v Object

  32. Děkuji za pozornost • Jaký je rozdíl mezi Javou a JavaScriptem?One is essentially a toy, designed for writing small pieces of code, and traditionally used and abused by inexperienced programmers.The other is a scripting language for web browsers.

More Related