📜  我们可以使用带箭头函数的提升吗?

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

我们可以使用带箭头函数的提升吗?

箭头函数:在 ES6 中引入的箭头函数,提供了一种在 JavaScript 中编写函数的简洁方式。它提供的另一个显着优势是它不绑定自己的事实。换句话说,箭头函数内部的上下文是词法或静态定义的。

提升:在 JavaScript 中,提升是在代码执行之前将所有声明移动到作用域顶部的默认行为。基本上,它为我们提供了一个优势,即无论函数和变量在何处声明,它们都会被移动到其作用域的顶部,而不管它们的作用域是全局的还是局部的。

句法:

const geekforggeks = (argument1, argumnet2) => {
    // body
}

与 Javascript 中的所有其他函数一样,箭头函数并不是在初始化之前无法调用它们的主要原因。因为提升是在执行代码之前将所有声明移动到范围顶部的默认操作。 JavaScript 为其所有变量分配内存。所以它给了我们一个优势,无论函数和变量在哪里声明,它们都会被移动到其作用域的顶部,而不管它们的作用域是全局的还是局部的。另一个原因是箭头函数是匿名的。

现在让我们通过一些例子来理解这一点:

示例 1:在此示例中,我们展示了在调用函数之前我们无法访问该值。如果您在初始化之前调用,则会引发未定义的错误。这意味着该值未在 gfg() 中定义。

Javascript


Javascript


输出:

解释:所以当我们想要访问它时,我们无法从 gfg()函数上方访问变量名 input1,然后它会在浏览器的控制台中抛出未定义的错误,就像另一种编程语言一样,它在声明之前无法调用.抛出该错误的主要原因是 JavaScript 是为 x 的内存保留的,并将特殊的占位符 undefined 放置在它上面

示例 2:在这个示例中,我们将展示如果我们使用箭头函数,然后如果我们想要访问该值,那么它将在浏览器的控制台中抛出未捕获的 Typeerror。

Javascript


输出:

解释:现在它显示 throw an uncaught type error that gfg2 is not a 函数。原因是 gfg2 的行为类似于另一个变量,它使用 undefined 之类的占位符分配内存。