SlideShare uma empresa Scribd logo
1 de 52
JavaScript 101
                      Sven Lito - Front-end Developer
                 slito@tagworldwide.com + @svenlito + http://svenlito.com




Friday, 13 May 2011
Friday, 13 May 2011
What is JavaScript ?




Friday, 13 May 2011
JavaScript:
           ★          Created by Brendan Eich 1995
           ★          Developed in less than 2 Weeks
           ★          First release in NetScape 2
           ★          Influenced by Scheme,Java,Self
           ★          Interpreted language
           ★          Object-Oriented



Friday, 13 May 2011
What it’s not..




Friday, 13 May 2011
JavaScript




                                               jQuery
      probs to: rebecca murphey


Friday, 13 May 2011
Friday, 13 May 2011
JavaScript Basics




Friday, 13 May 2011
Variable Declaration:


             var arnoldSchwarzenegger = "Actor",
                 isNiceGuy = false;




Friday, 13 May 2011
Function Declaration:

                      function arniQuote() {
                         return "I'll be back.";
                      };




Friday, 13 May 2011
function makeMovie(withLindaHamilton) {
             var rad = withLindaHamilton || false;
          };




Friday, 13 May 2011
isGovernor ? "Cool Dude" : "No? Awww..";




Friday, 13 May 2011
Comparison Operators




Friday, 13 May 2011
★ = Assignment

                      ★ == Equality

                      ★ === Identity




Friday, 13 May 2011
// Assignment
                var bestFriend = "T1000";


                // Equality
                if (5 == "5") {
                  //true
                }


                // Identity
                if (5 === "5") {
                  //false
                }


Friday, 13 May 2011
// Short-circuit logic
                if (true || false)

                if (false && true)

                // Makes this code safe
                if (obj && obj.property)



Friday, 13 May 2011
Typecasting, baby!
                      "..changing an entity of one data type into another."




Friday, 13 May 2011
// true
                5 == "5"

                // "123"
                "1" + 2 + 3;




Friday, 13 May 2011
// 6, manual type conversion
                parseInt("1", 10) + 2 + 3;

                      parseInt: Parses a string argument and returns an
                           integer of the specified radix or base.




Friday, 13 May 2011
JavaScript data types




Friday, 13 May 2011
Primitive data types:

                      ★   Undefined

                      ★   Null

                      ★   Boolean

                      ★   Number

                      ★   String

                      ★   object



Friday, 13 May 2011
Primitive data types:

                      ★   Undefined

                      ★   Null

                      ★   Boolean

                      ★   Number

                      ★   String

                      ★   object << not this guy



Friday, 13 May 2011
Primitive data types:

                      ★   Undefined

                      ★   Null

                      ★   Boolean

                      ★   Number

                      ★   String

                      ★   object      Hi, I’m
                                      smart..



Friday, 13 May 2011
"Everything in JavaScript
                      acts like an object, with
                      the only two exceptions
                      being null and undefined."

                              - Arnold Schwarzenegger




Friday, 13 May 2011
Type checking



Friday, 13 May 2011
typeof return values:
                      ★   string

                      ★   number

                      ★   boolean

                      ★   function

                      ★   object

                      ★   undefined


Friday, 13 May 2011
typeof fanClub // "undefined"

                var title = "Conan the Barbarian";
                typeof title // Equals "string"

                var age = 64;
                typeof age // Equals "number"




Friday, 13 May 2011
function anotherQuote() {
            return "If it bleeds, we can kill it.";
          }

          typeof anotherQuote; // "function"




Friday, 13 May 2011
var obj = {};
       typeof obj // "object"

       var arr = ["A", "R", "N", "O", "L", "D"];
       typeof arr // "object"




Friday, 13 May 2011
var obj = {};
       typeof obj // "object"

       var arr = ["A", "R", "N", "O", "L", "D"];
       typeof arr // "object"
                                   Blimey!




Friday, 13 May 2011
using instanceof



Friday, 13 May 2011
obj instanceof Array // false
         arr instanceof Array // true




Friday, 13 May 2011
Functions


Friday, 13 May 2011
procedural


                function notAHit() {
                  return "Stay Hungry";
                }




Friday, 13 May 2011
Functions as variables

           var wroteScript = function () {
              return "The 6th Day";
           };

           wroteScript();




Friday, 13 May 2011
Anonymous

         $('#conan').bind('click', function (e) {
           alert("some string");
         });



                      I’m in your jQuery’s binding yo clicks..




Friday, 13 May 2011
Immediately-Invoked
                      Function Expression
                            (IIFE)

                (function() {
                  var judgmentDay = "Shot in 1991";
                  return judgmentDay;
                })();




Friday, 13 May 2011
(function() {
                  var judgmentDay = "Shot in 1991";
                  return judgmentDay;
                })();




                      Invocation operator



Friday, 13 May 2011
Function arguments




Friday, 13 May 2011
★ the arguments collection

                      ★ Property: arguments.length

                      ★ NOT an array   (array-like object)




Friday, 13 May 2011
function sum(a, b, c) {
                        return a + b + c;
                      }

                      sum(1, 2, 3); // 6
                      sum(1, 2); // NaN




Friday, 13 May 2011
function sum() {
                  var sum = 0,
                      l = arguments.length,
                      i = 0;

                      for (i; i < l; i++) {
                        sum += arguments[i];
                      }
                      return sum;
                }

                sum(1, 2, 3); // 6
                sum(1, 2); // 3
                sum(1, 2, 7, 11, 5); // 26


Friday, 13 May 2011
Objects



Friday, 13 May 2011
Object literal

                      var arnold = {
                         name : "Arnold Schwarzenegger",
                         gotAnOscar : true
                      };

                      alert(arnold.name);   // "Arnold Schwarzenegger"




Friday, 13 May 2011
Object notation

                       arnold["arms"] = 2;
                       arnold.arms = 2;



                       did you just say array?



Friday, 13 May 2011
Object notation

                          arnold["arms"] = 2;
                          arnold.arms = 2;



                      Same thing, different syntax



Friday, 13 May 2011
works with any object


                      var arnold = {};

                      arnold[1972] = "Year of birth";
                      arnold["born"] = 1972;
                      arnold[true] = false;




Friday, 13 May 2011
var decentMovie = {
        title : "Red Sonia",
        year : 1997
     };

     for (var item in decentMovie) {
       /*
          make sure we only check decentMovie
          and not the whole prototype chain
       */
       if (decentMovie.hasOwnProperty(item)) {
          alert(item + ": " + decentMovie[item]);
       }
     }


Friday, 13 May 2011
Arni aside, srsly.
                      How do I use all of
                      this in real life?



Friday, 13 May 2011
// TAG namespace
                TAG = window.TAG || {};

                var TAG = (function ($) {

                      // private vars
                      var
                        privateVar1 = $('#boo-selecta'),
                        privateVar2 = $('#braaap'),
                        badAssArray = [];

                      return {
                         // approvals module
                         approvals: {
                           methodCall1: function (jQuery, TAG) {
                             alert("some string");
                           }
                         }
                      };

                })(jQuery);

                TAG.approvals.methodCall1(); // "some string"
Friday, 13 May 2011
Questions??



Friday, 13 May 2011
Thanks!


    email: slito@tagworldwide.com
    twitter: @svenlito


Friday, 13 May 2011

Mais conteúdo relacionado

Semelhante a JavaScript 101

JavaScript por debaixo dos panos
JavaScript por debaixo dos panosJavaScript por debaixo dos panos
JavaScript por debaixo dos panosDouglas Campos
 
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with MagentoMagento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magentovarien
 
Magento's Imagine eCommerce Conference 2011 - Unit Testing with Magento
Magento's Imagine eCommerce Conference 2011 - Unit Testing with MagentoMagento's Imagine eCommerce Conference 2011 - Unit Testing with Magento
Magento's Imagine eCommerce Conference 2011 - Unit Testing with MagentoMagentoImagine
 
Javascript - How to avoid the bad parts
Javascript - How to avoid the bad partsJavascript - How to avoid the bad parts
Javascript - How to avoid the bad partsMikko Ohtamaa
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackabilityPuppet
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPsmueller_sandsmedia
 

Semelhante a JavaScript 101 (8)

Testable Javascript
Testable JavascriptTestable Javascript
Testable Javascript
 
JavaScript por debaixo dos panos
JavaScript por debaixo dos panosJavaScript por debaixo dos panos
JavaScript por debaixo dos panos
 
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with MagentoMagento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
Magento Imagine eCommerce Conference - February 2011 - Unit Testing with Magento
 
Magento's Imagine eCommerce Conference 2011 - Unit Testing with Magento
Magento's Imagine eCommerce Conference 2011 - Unit Testing with MagentoMagento's Imagine eCommerce Conference 2011 - Unit Testing with Magento
Magento's Imagine eCommerce Conference 2011 - Unit Testing with Magento
 
Scala 101-bcndevcon
Scala 101-bcndevconScala 101-bcndevcon
Scala 101-bcndevcon
 
Javascript - How to avoid the bad parts
Javascript - How to avoid the bad partsJavascript - How to avoid the bad parts
Javascript - How to avoid the bad parts
 
Puppet camp europe 2011 hackability
Puppet camp europe 2011   hackabilityPuppet camp europe 2011   hackability
Puppet camp europe 2011 hackability
 
international PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHPinternational PHP2011_ilia alshanetsky_Hidden Features of PHP
international PHP2011_ilia alshanetsky_Hidden Features of PHP
 

Último

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Último (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

JavaScript 101

  • 1. JavaScript 101 Sven Lito - Front-end Developer slito@tagworldwide.com + @svenlito + http://svenlito.com Friday, 13 May 2011
  • 3. What is JavaScript ? Friday, 13 May 2011
  • 4. JavaScript: ★ Created by Brendan Eich 1995 ★ Developed in less than 2 Weeks ★ First release in NetScape 2 ★ Influenced by Scheme,Java,Self ★ Interpreted language ★ Object-Oriented Friday, 13 May 2011
  • 6. JavaScript jQuery probs to: rebecca murphey Friday, 13 May 2011
  • 9. Variable Declaration: var arnoldSchwarzenegger = "Actor", isNiceGuy = false; Friday, 13 May 2011
  • 10. Function Declaration: function arniQuote() { return "I'll be back."; }; Friday, 13 May 2011
  • 11. function makeMovie(withLindaHamilton) { var rad = withLindaHamilton || false; }; Friday, 13 May 2011
  • 12. isGovernor ? "Cool Dude" : "No? Awww.."; Friday, 13 May 2011
  • 14. ★ = Assignment ★ == Equality ★ === Identity Friday, 13 May 2011
  • 15. // Assignment var bestFriend = "T1000"; // Equality if (5 == "5") { //true } // Identity if (5 === "5") { //false } Friday, 13 May 2011
  • 16. // Short-circuit logic if (true || false) if (false && true) // Makes this code safe if (obj && obj.property) Friday, 13 May 2011
  • 17. Typecasting, baby! "..changing an entity of one data type into another." Friday, 13 May 2011
  • 18. // true 5 == "5" // "123" "1" + 2 + 3; Friday, 13 May 2011
  • 19. // 6, manual type conversion parseInt("1", 10) + 2 + 3; parseInt: Parses a string argument and returns an integer of the specified radix or base. Friday, 13 May 2011
  • 21. Primitive data types: ★ Undefined ★ Null ★ Boolean ★ Number ★ String ★ object Friday, 13 May 2011
  • 22. Primitive data types: ★ Undefined ★ Null ★ Boolean ★ Number ★ String ★ object << not this guy Friday, 13 May 2011
  • 23. Primitive data types: ★ Undefined ★ Null ★ Boolean ★ Number ★ String ★ object Hi, I’m smart.. Friday, 13 May 2011
  • 24. "Everything in JavaScript acts like an object, with the only two exceptions being null and undefined." - Arnold Schwarzenegger Friday, 13 May 2011
  • 26. typeof return values: ★ string ★ number ★ boolean ★ function ★ object ★ undefined Friday, 13 May 2011
  • 27. typeof fanClub // "undefined" var title = "Conan the Barbarian"; typeof title // Equals "string" var age = 64; typeof age // Equals "number" Friday, 13 May 2011
  • 28. function anotherQuote() { return "If it bleeds, we can kill it."; } typeof anotherQuote; // "function" Friday, 13 May 2011
  • 29. var obj = {}; typeof obj // "object" var arr = ["A", "R", "N", "O", "L", "D"]; typeof arr // "object" Friday, 13 May 2011
  • 30. var obj = {}; typeof obj // "object" var arr = ["A", "R", "N", "O", "L", "D"]; typeof arr // "object" Blimey! Friday, 13 May 2011
  • 32. obj instanceof Array // false arr instanceof Array // true Friday, 13 May 2011
  • 34. procedural function notAHit() { return "Stay Hungry"; } Friday, 13 May 2011
  • 35. Functions as variables var wroteScript = function () { return "The 6th Day"; }; wroteScript(); Friday, 13 May 2011
  • 36. Anonymous $('#conan').bind('click', function (e) { alert("some string"); }); I’m in your jQuery’s binding yo clicks.. Friday, 13 May 2011
  • 37. Immediately-Invoked Function Expression (IIFE) (function() { var judgmentDay = "Shot in 1991"; return judgmentDay; })(); Friday, 13 May 2011
  • 38. (function() { var judgmentDay = "Shot in 1991"; return judgmentDay; })(); Invocation operator Friday, 13 May 2011
  • 40. ★ the arguments collection ★ Property: arguments.length ★ NOT an array (array-like object) Friday, 13 May 2011
  • 41. function sum(a, b, c) { return a + b + c; } sum(1, 2, 3); // 6 sum(1, 2); // NaN Friday, 13 May 2011
  • 42. function sum() { var sum = 0, l = arguments.length, i = 0; for (i; i < l; i++) { sum += arguments[i]; } return sum; } sum(1, 2, 3); // 6 sum(1, 2); // 3 sum(1, 2, 7, 11, 5); // 26 Friday, 13 May 2011
  • 44. Object literal var arnold = { name : "Arnold Schwarzenegger", gotAnOscar : true }; alert(arnold.name); // "Arnold Schwarzenegger" Friday, 13 May 2011
  • 45. Object notation arnold["arms"] = 2; arnold.arms = 2; did you just say array? Friday, 13 May 2011
  • 46. Object notation arnold["arms"] = 2; arnold.arms = 2; Same thing, different syntax Friday, 13 May 2011
  • 47. works with any object var arnold = {}; arnold[1972] = "Year of birth"; arnold["born"] = 1972; arnold[true] = false; Friday, 13 May 2011
  • 48. var decentMovie = { title : "Red Sonia", year : 1997 }; for (var item in decentMovie) { /* make sure we only check decentMovie and not the whole prototype chain */ if (decentMovie.hasOwnProperty(item)) { alert(item + ": " + decentMovie[item]); } } Friday, 13 May 2011
  • 49. Arni aside, srsly. How do I use all of this in real life? Friday, 13 May 2011
  • 50. // TAG namespace TAG = window.TAG || {}; var TAG = (function ($) { // private vars var privateVar1 = $('#boo-selecta'), privateVar2 = $('#braaap'), badAssArray = []; return { // approvals module approvals: { methodCall1: function (jQuery, TAG) { alert("some string"); } } }; })(jQuery); TAG.approvals.methodCall1(); // "some string" Friday, 13 May 2011
  • 52. Thanks! email: slito@tagworldwide.com twitter: @svenlito Friday, 13 May 2011