Parsing the polysemy of the Javascript parenthesis 'of'

  • 2020-03-30 00:41:41
  • OfStack

Javascript brackets have five semantics

Semantics 1, function declaration when the parameter table


function func(arg1,arg2){ 
  // ... 
} 

Semantics 2, used in conjunction with statements to achieve certain qualifiers

//Used with for in
for(var a in obj){ 
  // ... 
} 

//Use it with if
if(boo){ 
  //... 
} 

//Use it with while
while(boo){ 
  // ... 
} 

//Used with do while
do{ 
  // ... 
}while(boo) 

Note: when used with if, while, and do while, the parentheses implicitly convert the result of the expression into a Boolean value. See implicit type conversion in JavaScript.

Semantics 3, used with new to pass values (arguments)


//Let's say I've defined the class Person, and it has two fields name, age
var p1 = new Person('Jack',26); 

Semantics 4, as a function or object method call operator (if defined parameters can also be passed as semantics 3)

//Let's say I've defined the function func
func(); 

//Assume that you've defined the object obj and have the func method
obj.func(); 

Here's the typeof operator, which some people like to use

The typeof (XXX);

Note that the parentheses after typeof are not semantics 4 (that is, not a function call), but semantics 5 as mentioned later. I use typeof without the usual parentheses.

Semantic 5, force expression operation

The most familiar thing about semantic 5 is that you use eval to parse JSON


function strToJson(str){ 
     //In eval, we have the forced operator () on both sides of a string
     var json = eval('(' + str + ')');  
     return json; 
} 

Another example is the use of more anonymous function self - execution

(function(){ 
  // ... 
})(); 


Related articles: