It is necessary to sort out a lot of previously confusing knowledge: let’s start with the most basic variables.
1. Variable variable
a. Global Variable and Local Variable Private Variable
There is a difference between adding var and not adding var
--》If the keyword var is not used, declare a variable , then this is a global variable, which can be accessed by any sub-function, even where the curly braces are jumped out; , all functions can access this variable, such as:
function foo(){
i=8 🎜>function foo2(){
var i=88 //Variable i can be accessed under these curly braces
alert(i);
child()
function child(){alert(i )}
}
foo();foo2()
alert(i) //The i here is still 8
It is worth noting that function is a compile-time object and must be executed or instantiated to allocate this variable in memory.
Global variables are accustomed to start with _; p.s It is best to use all variables with caution, you know when this variable changes there!
-------" See js manual:
"Although not safe, it is legal JScript syntax to omit the var keyword in a declaration statement. At this time, the JScript interpreter gives the variable global scope visibility . When a variable is declared at the procedure level, it cannot be used in the global scope; in this case, the variable declaration must use the var keyword ”
b. The types of the variable. variable
Jscript has three main data types, two composite data types and two special data types.
The main (basic) data types are:
String
Numeric
Boolean
The composite (reference) data types are:
Object
Array
The special data types are:
Null
Undefined
The following is a brief description of the various object types in JavaScript:
Native Object: The JavaScript language does not rely on execution Host objects, some of which are built-in objects, such as Global and Math; some are created and used in the script running environment, such as: Array, Boolean, Date, Function, Number, Object, RegExp, Error.
Build-in Object: Built-in objects provided by the JavaScript language that do not depend on the execution host, such as Global and Math; built-in objects are all Native Objects.
Host Object: Any object provided by the JavaScript language that depends on the host environment. All non-Native Object objects are host objects, such as: window in IE, wscript instance in WScript, and any user-created class.
****How to check object type? ******
1.typeof()
The typeof operator returns type information as a string. There are six possible return values of typeof: "number," "string," "boolean," "object," "function," and "undefined."
2. val instanceof Array
returns a Boolean Value indicating whether the object is an instance of a specific class.
For example, when checking an array or date type (in fact, any type is allowed, see example), you must use instance of class name (without quotes), for example:
function foo(){ }
var f = new foo();
alert(f instanceof foo2) //false
3.constructor
The usage of constructor feels the same as the usage of instance, except that it does not return boolean value
x = new String("Hi");
if (x.constructor == String)
// Process (condition is true).
What type is *******var i={}? ****
Answer: object type is equivalent to var i = new Object
Object object is the carrier of all objects, a bit like the parent class
Object object is very simple,
It has only two properties and two methods
The two properties are:
prototype
constructor
The two functions are:
toString()
valueOf()
So how to text var obj = new MyObject()? In fact, it is very simple. The textual definition of obj is as follows:
var obj =
{
Properties1: 1, Properties2: '2', Properties3: [3] ,
Method1: function(){ return this.Properties1 this.Properties3[0];},
Method2: function(){ return this.Preperties2; }
};
The syntax for textual definition of class instances is to use a pair of "{}" to represent the class, which means that "{}" is completely equivalent to "new Object()". Then press "key:value" within "{}" to organize properties and methods. Key can be any combination of characters [A-Za-z0-9_], even numbers starting with @_@ are legal, and value is any legal Textual JavaScript data, and finally each key-value pair is separated by ",".
Usually used to exchange data with JSON.
Two meanings of *******undefined*****
1.undefined keyword 2.undefined attribute
Declared a variable but did not assign a value , it belongs to the first situation;
There is no declaration at all, and a variable is used to participate in the calculation, and its data type is the second situation;
Two same names but different meanings, it is recommended to change the name in the next version .
var declared;
if (declared == undefined) //Changing to uninitialized will be more accurate, js is loose language indeed!
document.write("declared has not been given a value.");
if (typeOf(notDeclared) == "undefined")
document.write("notDeclared has not been defined.");