SlideShare a Scribd company logo
JavaScript
OBJECT -> “Namespace”, “classes”, “constructor”,
prototypes, fluent “interface”, jQuery live example, MVVM,
Knockoutjs
• JavaScript is object based, everything in JS is an object
          • Variables created using var
          • You should always use semicolons, and an object is a collection of name/value
               name: value
          • JavaScript is case sensitive
          • Always use strict mode, declared with “use strict”
           Restrictions
                Cannot use a variable without declaring it
starter        
               
                 Cannot write to a read-only property
                 Cannot add properties to non-extensible objects
                Cannot illegally delete functions and variables
                Cannot define a property more than once in an object literal
                Cannot use a parameter name more than once in a function
                Cannot use reserved words, eval, or arguments, as names for functions and
                 variables
                The value of this in a function is no longer the window object
                Cannot declare functions inside of statements
                Cannot change the members of the arguments array
• NULL
               • One of the JavaScript primitive types
               • Represents the absence of value
  Null         • Evaluates to false in Boolean expressions
  and       • UNDEFINED
               •   Primitive type
undefined      •   Represents an unknown value
               •   Returned when a non-existent object property is called
               •   Evaluates to false in Boolean expressions
 Objects are only equal to themselves
                      Primitives are equal if the values match (“salvo” === “salvo”)
                      Two sets of equality operators ( == and ===)
 Avoid coercive       never use == or != INSTEAD of === or !==
equality operators       0 == '0';
                         0 === '0';
                                                 //true
                                                 //false
                         false == '0';           //true
                         false === '0';          //false
 Top-level function
         Simple way to test for numbers and failed mathematical
isNaN     expressions
         parseFloat method is helpful to convert a string in a number
 Comparision == OR ===
DEMO    Prototype
 The window object in browsers is a global namespace
             Variables defined outside a function are in the global namespace
             Variables defined without the var keyword are in the global namespace
             Always create your own namespace by a pattern
                  The module pattern was made by Eric Miraglia of YUI in the 2007
                  Use it to prevent name collisions and polluting parent namespace
                  Keep everything tidy
                  Module Export Pattern:

Namespace   var MODULE = (function () {
              var my = {},
              privateVariable = 1;
             function privateMethod() {
                  // ...
             }
              my.moduleProperty = 1;
              my.moduleMethod = function () {
                                        // ...
                                };
              return my;
            }());

             Anonymous Closures Pattern:
            (function () {
              // ... all vars and functions are in this scope only
              // still maintains access to all globals
            }());
 We create a class in js by a pattern
Classes    Use it to prevent name collisions and polluting parent namespace
           Keep everything tidy
           Use the new keyword to invoke the constructor
 A function start with the keyword function
             A function can have a name or not
             A function can have parameters
             The delimiters of the function are { }
             A function can return a value, and that value can be itself
             Cannot be overloaded!!!
                 Parameters not passed are setted undefined
Functions    Function without parameters has a default param called
              (arguments)
             Is possible to have a function inside a function Closure
             Functions have this
             Every function has a property named prototype
             Useful to add a new function to a “class”
 Closure
        Class
DEMO    Namespace – Module
        Namespace – Inherit
 http://en.wikipedia.org/wiki/Model_View_ViewModel
                The Model View ViewModel (MVVM) is an architectural
                 pattern used in software engineering that originated
                 from Microsoft as a specialization of the presentation model
                 design pattern introduced by Martin Fowler.[1] Largely based on
                 the model–view–controller pattern (MVC), MVVM is targeted at
                 modern UI development platforms which support Event-driven
MVVM Pattern     programming, such as HTML5,[2][3] Windows Presentation
                 Foundation(WPF), Silverlight and the ZK framework.
                MVVM facilitates a clear separation of the development of
                 the graphical user interface (either as markup language or GUI
                 code) from the development of the business logic or back
                 end logic known as the model (also known as the data model to
                 distinguish it from the view model).
Simplify dynamic JavaScript UIs by applying the Model-View-
Knockoutjs   ViewModel (MVVM)
 Knockout – visible or invisible
        Knockout – list
DEMO    Matt and Leigh example
•
                 Some useful links
    Strict Mode - http://msdn.microsoft.com/en-us/library/ie/br230269(v=vs.94).aspx
•   Strict Mode - http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
•   Knockoutjs - http://knockoutjs.com/
•   JavaScript info - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/
•   Namespace function -
    https://github.com/smith/namespacedotjs/blob/master/example/sandbox.js

More Related Content

PPT
PHP - Introduction to Object Oriented Programming with PHP
PPT
Patterns In-Javascript
PDF
JAVA PROGRAMMING- Exception handling - Multithreading
PDF
JavaScript Programming
PPTX
object oriented programming(PYTHON)
PPTX
Design pattern (Abstract Factory & Singleton)
PDF
Design patterns in java script, jquery, angularjs
ODP
Beginners Guide to Object Orientation in PHP
PHP - Introduction to Object Oriented Programming with PHP
Patterns In-Javascript
JAVA PROGRAMMING- Exception handling - Multithreading
JavaScript Programming
object oriented programming(PYTHON)
Design pattern (Abstract Factory & Singleton)
Design patterns in java script, jquery, angularjs
Beginners Guide to Object Orientation in PHP

What's hot (20)

PDF
09 Object Oriented Programming in PHP #burningkeyboards
PPT
PHP- Introduction to Object Oriented PHP
PPTX
JS - Basics
PPTX
Object Oriented Javascript part2
PPT
Oops concepts in php
PPTX
Abstraction in java [abstract classes and Interfaces
PPTX
Java script
PPTX
Advanced Javascript
PDF
Design patterns illustrated-2015-03
PPTX
An Introduction to JavaScript
PDF
Design Patterns - Factory Method & Abstract Factory
PPT
Js ppt
PDF
8 introduction to_java_script
PPTX
Typescript
PPTX
Introduction to JavaScript
PDF
Real-World Scala Design Patterns
PPTX
Object oriented javascript
PPTX
WHAT IS ABSTRACTION IN JAVA
PPTX
Java class 1
09 Object Oriented Programming in PHP #burningkeyboards
PHP- Introduction to Object Oriented PHP
JS - Basics
Object Oriented Javascript part2
Oops concepts in php
Abstraction in java [abstract classes and Interfaces
Java script
Advanced Javascript
Design patterns illustrated-2015-03
An Introduction to JavaScript
Design Patterns - Factory Method & Abstract Factory
Js ppt
8 introduction to_java_script
Typescript
Introduction to JavaScript
Real-World Scala Design Patterns
Object oriented javascript
WHAT IS ABSTRACTION IN JAVA
Java class 1
Ad

Viewers also liked (6)

PPTX
Sharepoint saturday 18 may 2013
PPTX
Jquery fundamentals
PPTX
Javascript for the c# developer
DOC
PPTX
El contrato de compraventa (II Bimestre - Derecho Civil IV, Obligaciones y Co...
DOCX
Daftar Riwayat Hidup = Nike Kusuma Wati
Sharepoint saturday 18 may 2013
Jquery fundamentals
Javascript for the c# developer
El contrato de compraventa (II Bimestre - Derecho Civil IV, Obligaciones y Co...
Daftar Riwayat Hidup = Nike Kusuma Wati
Ad

Similar to Javascript fundamentals and not (20)

PPTX
The JavaScript Programming Language
PPTX
Awesomeness of JavaScript…almost
PPT
JavaScript - An Introduction
KEY
Exciting JavaScript - Part I
PPT
JavaScript Tutorial
PPTX
Building maintainable javascript applications
PPT
Introduction to Javascript
PDF
Javascript classes and scoping
PDF
HTML5 for the Silverlight Guy
KEY
JavaScript Neednt Hurt - JavaBin talk
PDF
JavaScript: Patterns, Part 3
PPTX
JS Basics
PPT
Goodparts
PPT
JavaScript Misunderstood
PPTX
Java Script basics and DOM
PDF
JavaScript and jQuery - Web Technologies (1019888BNR)
PPTX
Cordova training : Day 4 - Advanced Javascript
PDF
Fii Practic Frontend - BeeNear - laborator3
PPTX
Javascript Best Practices and Intro to Titanium
PDF
JavaScript Good Practices
The JavaScript Programming Language
Awesomeness of JavaScript…almost
JavaScript - An Introduction
Exciting JavaScript - Part I
JavaScript Tutorial
Building maintainable javascript applications
Introduction to Javascript
Javascript classes and scoping
HTML5 for the Silverlight Guy
JavaScript Neednt Hurt - JavaBin talk
JavaScript: Patterns, Part 3
JS Basics
Goodparts
JavaScript Misunderstood
Java Script basics and DOM
JavaScript and jQuery - Web Technologies (1019888BNR)
Cordova training : Day 4 - Advanced Javascript
Fii Practic Frontend - BeeNear - laborator3
Javascript Best Practices and Intro to Titanium
JavaScript Good Practices

Javascript fundamentals and not

  • 1. JavaScript OBJECT -> “Namespace”, “classes”, “constructor”, prototypes, fluent “interface”, jQuery live example, MVVM, Knockoutjs
  • 2. • JavaScript is object based, everything in JS is an object • Variables created using var • You should always use semicolons, and an object is a collection of name/value name: value • JavaScript is case sensitive • Always use strict mode, declared with “use strict”  Restrictions  Cannot use a variable without declaring it starter   Cannot write to a read-only property Cannot add properties to non-extensible objects  Cannot illegally delete functions and variables  Cannot define a property more than once in an object literal  Cannot use a parameter name more than once in a function  Cannot use reserved words, eval, or arguments, as names for functions and variables  The value of this in a function is no longer the window object  Cannot declare functions inside of statements  Cannot change the members of the arguments array
  • 3. • NULL • One of the JavaScript primitive types • Represents the absence of value Null • Evaluates to false in Boolean expressions and • UNDEFINED • Primitive type undefined • Represents an unknown value • Returned when a non-existent object property is called • Evaluates to false in Boolean expressions
  • 4.  Objects are only equal to themselves  Primitives are equal if the values match (“salvo” === “salvo”)  Two sets of equality operators ( == and ===) Avoid coercive  never use == or != INSTEAD of === or !== equality operators 0 == '0'; 0 === '0'; //true //false false == '0'; //true false === '0'; //false
  • 5.  Top-level function  Simple way to test for numbers and failed mathematical isNaN expressions  parseFloat method is helpful to convert a string in a number
  • 6.  Comparision == OR === DEMO  Prototype
  • 7.  The window object in browsers is a global namespace  Variables defined outside a function are in the global namespace  Variables defined without the var keyword are in the global namespace  Always create your own namespace by a pattern  The module pattern was made by Eric Miraglia of YUI in the 2007  Use it to prevent name collisions and polluting parent namespace  Keep everything tidy  Module Export Pattern: Namespace var MODULE = (function () { var my = {}, privateVariable = 1; function privateMethod() { // ... } my.moduleProperty = 1; my.moduleMethod = function () { // ... }; return my; }());  Anonymous Closures Pattern: (function () { // ... all vars and functions are in this scope only // still maintains access to all globals }());
  • 8.  We create a class in js by a pattern Classes  Use it to prevent name collisions and polluting parent namespace  Keep everything tidy  Use the new keyword to invoke the constructor
  • 9.  A function start with the keyword function  A function can have a name or not  A function can have parameters  The delimiters of the function are { }  A function can return a value, and that value can be itself  Cannot be overloaded!!!  Parameters not passed are setted undefined Functions  Function without parameters has a default param called (arguments)  Is possible to have a function inside a function Closure  Functions have this  Every function has a property named prototype  Useful to add a new function to a “class”
  • 10.  Closure  Class DEMO  Namespace – Module  Namespace – Inherit
  • 11.  http://en.wikipedia.org/wiki/Model_View_ViewModel  The Model View ViewModel (MVVM) is an architectural pattern used in software engineering that originated from Microsoft as a specialization of the presentation model design pattern introduced by Martin Fowler.[1] Largely based on the model–view–controller pattern (MVC), MVVM is targeted at modern UI development platforms which support Event-driven MVVM Pattern programming, such as HTML5,[2][3] Windows Presentation Foundation(WPF), Silverlight and the ZK framework.  MVVM facilitates a clear separation of the development of the graphical user interface (either as markup language or GUI code) from the development of the business logic or back end logic known as the model (also known as the data model to distinguish it from the view model).
  • 12. Simplify dynamic JavaScript UIs by applying the Model-View- Knockoutjs ViewModel (MVVM)
  • 13.  Knockout – visible or invisible  Knockout – list DEMO  Matt and Leigh example
  • 14. Some useful links Strict Mode - http://msdn.microsoft.com/en-us/library/ie/br230269(v=vs.94).aspx • Strict Mode - http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ • Knockoutjs - http://knockoutjs.com/ • JavaScript info - https://developer.mozilla.org/en-US/docs/JavaScript/Reference/ • Namespace function - https://github.com/smith/namespacedotjs/blob/master/example/sandbox.js

Editor's Notes

  • #8: Strict mode: http://www.nczonline.net/blog/2012/03/13/its-time-to-start-using-javascript-strict-mode/
  • #12: Strict mode: http://www.nczonline.net/blog/2012/03/13/its-time-to-start-using-javascript-strict-mode/
  • #13: Strict mode: http://www.nczonline.net/blog/2012/03/13/its-time-to-start-using-javascript-strict-mode/