JavaScript Code Example

JavaScript Code Example

execute-js is a good Firefox add-on that make you execute and test your JavaScript code.

How to add method to Built-in classes

String.prototype.endsWith = function(c) {

return (c == this.charAt(this.length-1))

}

Using Object Properties as Arguments

This would allow arguments to be passed as name/value pairs in any order.

function easycopy(args) {

arraycopy(args.from,

args.from_start || 0, // Note default value provided

args.to, args.to_start || 0, args.length);

}

easycopy({from: a, to: b, length: 4});

How to simulate class in javascript?


function Rectangle(w, h) {

this.width = w; this.height = h;

}

Rectangle.UNIT = new Rectangle(1,1); // public static property

Rectangle.prototype.area = function( ) {

with(this) {return width*height;}

}

Rectangle.prototype.toString = function( ) {

return "(" + this.width + "," + this.height + ") ";

}

Private Members

function Rectangle(w, h) {

var width = w;

var height = h;

this.area = function( ) {

return width*height;

}

}

Public static method

Rectangle.getType = function () { return "Rectangle" }; Rectangle.prototype.getType = Rectangle.getType;

This will have the static methods working with an instance.

How to define subclass

function PositionedRectangle(x, y, w, h) {

Rectangle.call(this, w, h); // call superclass constructor

this.x = x;

this.y = y;

}

PositionedRectangle.prototype = new Rectangle( );

delete PositionedRectangle.prototype.width;

delete PositionedRectangle.prototype.height;

PositionedRectangle.prototype.constructor = PositionedRectangle;

PositionedRectangle.prototype.contains = function(x,y) {

return (x > this.x && x < this.x + this.width &&

y > this.y && y < this.y + this.height);

}

// demonstrate how to call overridden methods

PositionedRectangle.prototype.toString = function( ) {

return "(" + this.x + "," + this.y + ") " +

Rectangle.prototype.toString.apply(this);

}

Determining Object type

typeof is useful primarily for distinguishing primitive types from objects.

function getType(x) {

if (x == null) return "null";

var t = typeof x;

if (t != "object") return t;

var c = Object.prototype.toString.apply(x); // Returns "[object class]"

c = c.substring(8, c.length-1); // Strip off "[object" and "]"

if (c != "Object") return c;

// If we get here, c is "Object". Check to see if

// the value x is really just a generic object.

if (x.constructor == Object) return c; // Okay the type really is "Object"

// For user-defined classes, look for a string-valued property named

// classname, that is inherited from the object's prototype

if ("classname" in x.constructor.prototype && // inherits classname

typeof x.constructor.prototype.classname == "string") // its a string

return x.constructor.prototype.classname;

// If we really can't figure it out, say so.

return "";

}

Design pattern

Singleton

Instance in a Closure

function Universe() {

var instance = this;

// the rewritten constrictor is executed after the first time

Universe = function () {

return instance;

};

}

Use Static Property

function Universe() {

if (typeof Universe.instance === "object") {

return Universe.instance;

}

Universe.instance = this;

}

Javascript Basic

Comment: //, /* */

Creating Object

var person = new Object();

person.name = "Nicholas";

person.sayName = function(){alert(this.name);};

Array

var a = new Array( );

var a = new Array(1.2, "JavaScript", true, { x:1, y:3 });

var a = [1.2, "JavaScript", true];

a. push({ x:1, y:3 });

Function

Function Literals(lambda function)

var square = function(x) { return x*x; }

var square = new Function("x", "return x*x;"); // not recommended

var f = function fact(x) { if (x <= 1) return 1; else return x*fact(x-1); };

Named function expressions

[1,2,3,4,5].map(function factorial(n) {

return (!(n>1))? 1 : factorial(n-1)*n;

});

Optional Arguments

function f(o, /* optional */ a) {

a = a || []; // or if (!a) a = [];

}

Date

Format to yyyy-MM-dd:

var date = new Date();

var dateStr = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();

Note: January is 0, February is 1, and so on.

var date = Date.parse("Jul 8, 2005");

Note: it returnes a number, not a Date object.

date = new Date(date);

Map

var Map = {"one": 1, "two": "two","three": 3.0};

Resource

JavaScript: The Definitive Guide

JavaScript Patterns

Private Members in JavaScript

Post a Comment

Labels

Java (159) Lucene-Solr (110) All (60) Interview (59) J2SE (53) Algorithm (37) Eclipse (35) Soft Skills (35) Code Example (31) Linux (26) JavaScript (23) Spring (22) Windows (22) Web Development (20) Tools (19) Nutch2 (18) Bugs (17) Debug (15) Defects (14) Text Mining (14) J2EE (13) Network (13) PowerShell (11) Chrome (9) Continuous Integration (9) How to (9) Learning code (9) Performance (9) UIMA (9) html (9) Design (8) Dynamic Languages (8) Http Client (8) Maven (8) Security (8) Trouble Shooting (8) bat (8) blogger (8) Big Data (7) Google (7) Guava (7) JSON (7) Problem Solving (7) ANT (6) Coding Skills (6) Database (6) Scala (6) Shell (6) css (6) Algorithm Series (5) Cache (5) IDE (5) Lesson Learned (5) Miscs (5) Programmer Skills (5) System Design (5) Tips (5) adsense (5) xml (5) AIX (4) Code Quality (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Memory Usage (4) OpenNLP (4) Project Managment (4) Python (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Become a Better You (3) Concurrency (3) Eclipse RCP (3) English (3) Firefox (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Distributed (2) Fiddler (2) Google Drive (2) Gson (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Life (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Bit Operation (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Mac (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) Review (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Troubleshooting (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts