This document provides an overview of building a web application using HTML, CSS, and JavaScript. It discusses the key ingredients like front end, back end, APIs, and supporting different devices and accessibility. It then focuses on the front end and covers the basics of HTML, CSS, and JavaScript including how they work together, prototypes and inheritance in JavaScript, closures, hoisting, and best practices. The document concludes with discussing future directions like HTML5 and references developers can use to learn more.
4. Why ? - Naive User
Where ? - Internet [From Anywhere]
What? - Pictures are better way to express
communication than letters or journals
How? - HTML/CSS/JS
10. Everything is a Object eg function , var
anything(Native/Host)
There are also these primitive
value types like Undefined, Null,
String, Boolean and Number that
aren't objects
JS is Object-oriented language or Prototype
based language
11. "Prototype-based programming is a style of
object-oriented programming in which
classes are not present, and behavior reuse
(known as inheritance in class-based
languages) is accomplished through a process
of decorating existing objects which serve
as prototypes. This model is also known as
class-less, prototype-oriented, or instancebased programming."
12. Prototype
When you define a function within
JavaScript, it comes with a few pre-defined
properties
The prototype property is initially an empty
object, and can have members added to it
as you would any other object.
Every object within JavaScript has a secret
property added to it when it is defined or
instantiated, named __proto__
__proto__ property shouldnt be confused
with an objects prototype
13. var redbus = function(address){
this.address = "honolulu";
return this.address;
}
console.log(typeof redbus) //FUNCTION
"Function is a predefined object in
JavaScript, and, as a result, has its own
properties (e.g. length and arguments) and
methods (e.g. call and apply). And yes, it,
too, has its own prototype object, as well as the
secret __proto__ link."
15. This is known as prototype chain!
Ends when prototype of any object is null
By default Object's prototype is null
Confusing - Yes , Everything is Object and
Function , no classess , no keywords as
public - private: "yet we challenge to make it
Object Oriented"
17. / inherit Person
Monkey.prototype = new Animal();
Monkey.prototype.constructor = Monkey;
Monkey.prototype.sing = function(){
alert('Sing like OM');
}
var vishal = new Monkey();
vishal.walk(); vishal.sing();
18. This is Inheritance !
Can be checked by.
console.log(vishal instanceof Animal) // true
console.log(vishal instanceof Monkey) // true
In modern browser this can be achieved by:
Monkey.prototype = Object.create
(Animal.prototype);
19. Closures.
The pattern of public, private, and privileged
members is possible because JavaScript
has closures.
20. function Container(param) {
function dec() {
//uses secret
} //privileged
this.member = param;//public
var secret = 3;//private
var that = this;
this.service = function () {
return dec() ? that.member : null;
};//public
}
21. Enough OOPS!
Hoisting
Function level scoping not block level like
C++, Java, C#
Function declarations and variable
declarations are always moved (hoisted)
invisibly to the top of their containing scope
by the JavaScript interpreter. eg.
22. Memory Leaks
garbage collection
mark and sweep algorithm
reason for memory leaks
IE - Ohh yeah :P
Possible scenarios