1. function object
JavaScript does not overload the concept that each object implies an arguments object (actually received parameter). The Length attribute receives the expected parameters of the object, arguments. length, indicating the number of actually received parameters;
VaR add = function (number) {alert (number );};
Equivalent to VaR add = new function ("number", "Alert (number)"); // The last parameter represents the function body.
Equivalent to function add (number) {alert (number )};
Because it is an object reference, multiple functions with the same name will be overwritten by the last one, regardless of the number of parameters.
2. Data Types: Undefined (undefined), null (null), number (number), string (string), Boolean (true/false) five original data types: var S = "A"; alert (typeof s) return 'string'
Typeof returned values include 'undefined', 'object, 'number', 'string', and 'boolean'
Javascript if the declared function has no return value or return value, the returned undefined-undefined is derived from null.
Forced type conversion: there are only three types of Boolean (value), string (value), number (value): The Return Nan numeric Conversion error. conversion is not allowed if it is not defined. boolean is useless, it is not recommended.
3. javascript can dynamically add or delete attributes.
Object OBJ = new object ();
OBJ. Username = "zhangsan"; // OBJ ["usernam"] = "zhangsan ";
Delete obj. Username ;//
VaR object = {Username: "zhangsan", password: "Lisi", Gender: function (){...}} // The most common way to define objects. attributes are separated by commas.
4. Array
VaR array = new array ();
Array. Push (1 );
Array. Length
// Var array = [1, 3, 23]; // more common
Arrays. Sort (array); //, 3, which is first converted into characters and sorted in ascending order of strings. This is obviously unreliable and generally sorted in custom order.
Similar to Java
Function compare (num1, num2)
{
Varnum1 = parseint (num1 );
Varnum2 = parseint (num2 );
If (num1 <num2) Return-1;
Elseif (num1> num2) return 1;
Else return 0;
}
VaR array = [1, 3, 25];
Array. Sort (compare); // function name is an object reference
Array à [1 3 25]
5. Object creation method (JavaScript only has the object concept)
A: // 1: expand based on existing objects
VaR object = {Username: "zhangsan", password: "Lisi", Gender: function (){...}} // The most common way to define objects. attributes are separated by commas.
--------------------------------------------------------------------------
VaR object = newobject (); // suitable for temporary objects
Object. Name = "zhangsan ";
Object. Password = "123 ";
Object. sayname = function (name)
{
This. Name = Name;
Alert (this. Name );
}
Object. sayname ("Lisi ");
B: // 2: factory Method
Function Createobject (name, password)
{
VaR object = newobject ();
Object. Name = Name;
Object. Password = password;
/*
Object. Get = function ()
{
Alert (this. Name + "," + this. Password );
}
*/
Object. Get = get; // The recommendation. attribute is unique and the method is shared.
Return object;
}
Function get ()
{
Alert (this. Name + "," + this. Password );
}
VaR obj1 = Createobject ("zhangsan", "123 ");
Obj1.get ();
VaR obj2 = Createobject ("Wanger", "3434 ");
Obj2.get ();
C: // 3: constructor Mode
Function person (name, password)
{
This. Name = Name;
This. Password = password;
This. getinfo = function ()
{
Alert (this. Name + "," + this. Password );
}
// Implicitly generated object
}
VaR P = newperson ("zhangsan", "Wanger ");
P. getinfo ();
D // 4: Use prototype. The attribute value must be assigned after the object is generated. The attribute reference method (value change) is the same as Java. The attribute is shared by other objects, this attribute can be changed for other objects. If it is a reference type, the constant type will not change.
Function student (){}
Student. Prototype. Name = "zhangsan ";
Student. Prototype. Password = "lkjldjfl ";
Student. Prototype. getinfo = function ()
{
Alert (this. Name + "," + this. Password );
}
VaR S1 = newstudent ();
S1.getinfo ();
E: // 5: Use the prototype + constructor to define the object (Implementation: attributes are not shared, and methods are shared)
Function person ()
{
This. Name = new array ();
This. Password = "123"; // remember to initialize when defining
}
Person. Prototype. getinfo = function ()
{
Alert (this. Name + "," + this. Password );
}
VaR p1 = new person ();
VaR P2 = new person ();
P1.name. Push ("James ");
P2.name. Push ("ris ");
P1.getinfo ();
P2.getinfo ();
6. Object Inheritance inheritance
// JavaScript inheritance: 1. Object impersonating
Function parent (name)
{
This. Name = Name;
This. sayname = function ()
{
Alert (this. Name );
}
}
Function Sun (name, age)
{
This. method = parent; // the method defined in prototype cannot be inherited and is not recommended.
This. Method (name );
Delete this. method;
This. Age = age;
This. sayage = function ()
{
Alert (this. Age );
}
}
VaR P = new parent ("zhangsan ");
VaR S = new sun ("Lisi", 20 );
P. sayname ();
S. sayname ();
S. sayage ();
Method 2: // The call method is a method in the function object. Therefore, every function we define has a call method. The first parameter of the call method is passed to this in the function, starting from the second parameter, the parameters will be passed to the function (caller) in sequence.
/** Test Call User
Function Test (str1, str2)
{
Alert (this. Name + "," + str1 + "," + str2)
}
VaR object = newobject ();
Object. Name = "zhangsan ";
Object. arg1 = 30;
Test. Call (object, "AA", 20 );
*/
// Use call to implement inheritance
Function daughter (name, gender)
{
Parent. Call (this, name );
This. Gender = gender;
This. getinfo = function ()
{
Alert (this. Gender );
}
}
// Test code
VaR d = new daughter ("Rose", 27 );
D. sayname ()
D. getinfo ();
Method 3 // use apply to implement inheritance, similar to call
Functiondaughter2 (name, gender)
{
Parent. Apply (this, new array (name,...); // [name], which transmits Parameters Using arrays, while the call method is discrete.
This. Gender = gender;
This. getinfo = function ()
{
Alert (this. Gender );
}
}
VaR D2 = newdaughter2 ("rose2", 37 );
D2.sayname ()
D2.getinfo ();
Method 4 // use prototype chain to implement hybrid inheritance recommendation
Function parent2 (name)
{
This. Name = Name;
}
Parent2.prototype. sayname = function ()
{
Alert (this. Name );
}
Function sun2 (name, age)
{
Parent2.call (this, name); // implement property inheritance
This. Age = age;
}
Sun2.prototype = new parent2 (); // inherits the prototype of the parent object
Sun2.prototype. sayage = function ()
{
Alert (this. Age );
}
// Test code
VaR sun2 = newsun2 ("Wang 'er", 100 );
Sun2.sayname ();
Sun2.sayage ();
7. firebug skills:
Function showlog (MSG)
{
Console. Log (MSG );
Lele.info (MSG );
Console. Warn (MSG );
Console. Error (MSG );
Console. debug (MSG );
}
Function Test (name)
{
Showlog (name );
}
Showlog ("test ");
8,