JavaScript literal
In programming languages, a literal is a constant, as in 3.14.
Number literals can be integers, decimals, or scientific notation (e).
3.14 1001 123e5
String literal can be written with double or single quotes:
"John Doe" 'John Doe'
Expression literal used for calculation:
5 + 6 5 * 10
Array literal defines an array:
[40, 100, 1, 5, 25, 10]
Object literal defines an object:
{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
Function literal defines a function:
function myFunction(a, b) { return a * b;}
JavaScript function definition
JavaScript uses the keyword function to define functions.
A function can be defined by a declaration or it can be an expression.
Function declaration
In the previous tutorial, you already learned the syntax of function declaration:
function functionName(parameters) { 执行的代码 }
The function will not be executed immediately after it is declared, but will be called when we need it.
Example
function myFunction(a, b) { return a * b; }
Note semicolons are used to separate executable JavaScript statements.
Since a function declaration is not an executable statement, it does not end with a semicolon.
Function expression
JavaScript functions can be defined through an expression.
Function expressions can be stored in variables:
Example
var x = function (a, b) {return a * b};
After the function expression is stored in the variable, the variable can also be used as a function:
Example
var x = function (a, b) {return a * b}; var z = x(4, 3);
The above function is actually an anonymous function (the function has no name).
Functions are stored in variables and do not require a function name. They are usually called through the variable name.
Note The above function ends with a semicolon because it is an execution statement.
Function() constructor
In the above example, we learned that functions are defined through the keyword function.
Functions can also be defined through the built-in JavaScript function constructor (Function()).
Example
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
Actually, you don't have to use a constructor. The above example can be written as:
Example
var myFunction = function (a, b) {return a * b} var x = myFunction(4, 3);
Note In JavaScript, many times, you need to avoid using the new keyword.
Function Hoisting (Hoisting)
We already learned about "hoisting" in a previous tutorial.
Hoisting is JavaScript's default behavior of hoisting the current scope to the front.
Hoisting applies to variable declarations and function declarations.
Therefore, functions can be called before declaration:
myFunction(5); function myFunction(y) { return y * y; }
Hoisting is not possible when defining a function using an expression.
Self-calling function
Function expressions can "call themselves".
Self-calling expressions are called automatically.
This is automatically called if the expression is immediately followed by () .
Y cannot call the declared function itself.
Indicate that it is a function expression by adding parentheses:
Example
(function () { var x = "Hello!!"; // 我将调用自己 })();
The above function is actually an anonymous self-calling function (without a function name).
Function can be used as a value
JavaScript function used as a value:
Example
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript functions can be used as expressions:
Example
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
Functions are objects
Using the typeof operator in JavaScript to determine the function type will return "function".
However, it is more accurate to describe a JavaScript function as an object.
JavaScript functions have properties and methods.
The arguments.length property returns the number of arguments received by the function calling process:
Example
function myFunction(a, b) { return arguments.length; }
The toString() method returns the function as a string:
Example
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();