📜  解释 JavaScript 中不同的函数状态

📅  最后修改于: 2022-05-13 01:56:55.303000             🧑  作者: Mango

解释 JavaScript 中不同的函数状态

在javascript中,我们可以根据具体操作的需要,以多种不同的方式创建函数。例如,有时我们需要异步函数或同步函数。在本文中,我们将讨论函数 Person( ) { }、var person = Person ( ) 和 var person = new Person ( ) 之间的区别。

函数声明:下面给出的语法是函数的声明。代码声明了一个函数语句,但在我们不调用它们之前不会执行。这里 Person 是函数的名称。 javascript 中的函数是使用此方法声明的。

function Person (){}

函数声明示例:在此示例中,我们将创建一个名为 Person 的函数并执行如下所示的一些任务。

Javascript
function Person() {
    name = "Vikash";
    age = "22";
}


Javascript
// Function declaration
function person() { }  
var person = person()
  
// Printing the return value
// of the person() function
console.log(person)
  
function person1(name) {
    return name;
}
  
var person1=person1("Aayush")
  
// Printing the value of person1
console.log(person1)


Javascript
// Creating the function
function Person (name, age) {
    this.name = name;
    this.age = age;
}
  
// Calling the function 
var person = new Person("Vikah", 22);
  
console.log(person.name);
console.log(person.age);


函数表达式:在此代码中,变量 person 使用 var 关键字定义。我们也可以使用 const 和 let 关键字。 person 变量包含 Person函数的所有值引用。在 javascript 中,每个表达式都会返回一个值。如果函数不返回并且值或值将是函数的返回类型,则该值可能是未定义的。如果未分配名称并用括号括起来解释为表达式,则此函数可能是匿名函数。

var person = Person ()

函数表达式示例:

index.js

Javascript

// Function declaration
function person() { }  
var person = person()
  
// Printing the return value
// of the person() function
console.log(person)
  
function person1(name) {
    return name;
}
  
var person1=person1("Aayush")
  
// Printing the value of person1
console.log(person1)

使用以下命令运行index.js文件:

node index.js

输出:

undefined
Aayush

一个未定义的将打印,因为该函数不返回任何值,而第二个函数返回名称值,这就是名称在第二行中打印的原因。

函数构造函数:在这段代码中,我们使用 new 关键字创建一个实例。这里的人是人的实例(对象)。除非我们创建函数的实例,否则函数声明是常规函数。函数构造函数的主要优点是初始化 javascript 函数的成员值。

创建实例后,我们可以通过创建变量来使用该函数,如下例所示。

var person = new Person()

index.js

Javascript

// Creating the function
function Person (name, age) {
    this.name = name;
    this.age = age;
}
  
// Calling the function 
var person = new Person("Vikah", 22);
  
console.log(person.name);
console.log(person.age);

使用以下命令运行index.js文件:

node index.js

输出:

Vikah
22