1. The JavaScript compiler, when encountering the keyword "function", is considered by default to be a function declaration, not an expression.
2. You can call it after the declared function is enclosed by parentheses. Like what
function foo () {console.log (' Hello JavaScript. ')}
Foo ();
3. The parentheses allow the JavaScript expression, (function () {Console.log (' Hello JavaScript ')}) so that the anonymous function is an expression, not a function declaration. Based on the 2nd above, the parentheses are followed to execute the function, i.e. (function () {Console.log (' Hello JavaScript ')}). This notation is equivalent to (function () {Console.log (' Hello JavaScript ')} ()), which is recommended.
The following methods are equivalent without regard to the return value
+function () {console.log (' Hello JavaScript ')} ()
-function () {console.log (' Hello JavaScript ')} ()
!function () {console.log (' Hello JavaScript ')} ()
~function () {console.log (' Hello JavaScript ')} ()
New function () {Console.log (' Hello JavaScript ')}
New function (name) {Console.log (' hello JavaScript ' + name;)} (' Bruce ')
JavaScript self-executing functions (immediately-invoked function Expression)