When I first started learning JavaScript, I was always confused by some inexplicable grammatical forms in javascript. And I don't know how many of those inexplicable grammatical forms it supports? Now through this a few months of in-depth understanding, is to make them more clear, so the following is to say JS literal syntax characteristics.
The textual nature of the JavaScript language? My God, is there any language that is not written using text? What can I use without text? With the stream of consciousness? It's really faint, huh?
Although each of our languages use text to express, say far point asm is the text of the bar, Basic is the text of the bar, C/S, C #, Java What is the text bar. This is not wrong, their language expression is the text form, but they cannot use the text to represent all content. Simple types such as numbers and strings are fine, but can C # or Java represent an object instance in text (not with a bunch of definition statements and then new object instances?)? Obviously not, but JavaScript provides a textual way of writing all data types, including complex objects.
We write JS commonly used data types include: number, Boolean, String, Array, function, and object. Where the number, Boolean, and string belong to a simple type, writing is the basic way to do it, if you use NewXXX () to define instead will let a person feel to take off pants to fart.
Number : var i = i = 100.11;
Boolean: var b = true; b = false;
String: var str = 'is a string. ';
For complex data types, functions, arrays, and objects What do we do? Functions are not to mention, they are defined in textual terms. Let's look at how arrays and objects are represented. If we have an array:
Varary= NewArray (6);
ary[0]=Null;
ary[ 1 ] = 1 ;
ary[ 2 ] = ' string ';
ary[ 3 ] = true ;
ary[ 4 ] = function ()
{
return ' Keke ';
};
ary[ 5 ] = New myobject (); , [n], "():" ()
We're going to write this array using the text (which is our usual way of initializing) and it will be:
var ary1 = [null, 1, ' string ', true, function() {return ' Keke ';}, new MyObject ()];
More streamlined than it is? And the textual way of the array can be written far more complex than this, such as:
var ary2 = []; //empty array, equivalent to new array ();
var ary3 = [1, [2, [3, [4,[5, [6, [7] , [8, [9, [0] ]]];
The third ary3 is an array, and I don't know @_@.
No, how Ary[5] is new MyObject ()? Oh, I'm sorry, let's take the MyObject example, if it's defined as:
functionMyObject ()
{
This. Properties1=1;
This. Properties2='2';
This. Properties3=[3];
This. toString=function()
{
Return' [Class MyObject] ';
};
}
MyObject.prototype.Method1 = function ()
{
return this . properties1 + this . properties3[ 0 ];
};
myobject.prototype.method2 = function ()
{
return , this . Properties2;
}; /span>
So our var obj = new MyObject () How to text it? In fact, it's very simple, and the text of obj is defined as follows:
VarObj=
{
Properties1: 1 , properties2 : ' 2 ', properties3 : [ 3 ],
method1 : function () { return this . properties1 + this . properties3[ 0 ];
method2 : function () { return this . PREPERTIES2;&NBSP}
};
The direct textual definition of the
instance of this class, while not concise, is not bad. This allows us to replace the ary new myobject () with this textual class instance. The syntax for the literal definition of a class instance is to represent the class with a pair of "{}", which means that "{}" is completely equivalent to the new Object (). Then "{}" within the "Key:value" organizational properties and methods, the key can be any [a-za-z0-9_] character combination, or even the beginning of the number is legitimate @_@,value is any legitimate text JavaScript data, and finally each key value pairs with "," To separate the line.