箭头函数vs函数vs const



谁能给我解释一下,或者给我一些描述以下实现差异的文档?

我不知道什么时候使用哪个样式的自定义函数。

据我所知,A和B大致相同,但ES6允许箭头函数。有理由使用另一个吗?C语言如何适应?

const solutionA = () => {
return <p>A Text</p>
}
function solutionB(){
return <p>B Text</p>
}
const solutionC = (
<p>C Text</p>
)

在react中创建组件。

有一些方法可以创建组件,其中之一是功能组件(一个返回组件的函数——所以至少,从你的函数中返回html标签)。
const solutionA = () => { return <p>A Text</p> }; 
function solutionB() { return <p>B Text</p> }
const solutionC; //later

在JSC文件中,您可以使用<solutionA /><solutionB />之类的组件。

对于solutionC,它不返回组件,但你可以在组件中使用它,像这样:

const solutionC = (<p>C Text</p>);
function solutionD() { return (<div> Hello {solutionC} </div>)

由于solutionC不是一个组件,而是一个变量持有html标签,您可以使用JSX语法({}),并使用它作为一个变量。

这个solutionD组件将会产生这个HTML:

<div> 
Hello <p>C Text</p>
</div>

函数声明和函数表达式之间的主要区别在于,在第一种情况下,您甚至可以在定义函数之前调用它。另一方面,由于函数表达式存储在变量中,如果没有首先定义函数名,则不能调用该函数。还有许多其他的区别,你可以在MDN的这篇文章中读到它们。

关于箭头函数,我想说它们唯一的好处是使代码更短,但只是在特殊情况下。下面是一个示例,它将函数从5行缩短到只有1行,同时使其更具可读性:

function (myObject) {
return givenArray.every( function (cell) {
return cell === myObject);
});
};
>
myObject => givenArray.every(cell => cell === myObject);

这个函数可以读作:"检查givenArray的每个元素是否都等于myObject"

一般来说,我会在三种情况下减少数组函数的好处:

  • 只有一条return语句的函数;您的示例可以缩短为:const solutionA = () => <p>A Text</p>
  • 在只包含一个返回布尔值的条件的函数中。
  • 在函数中作为另一个函数的输入。

你也可以在这里阅读更多关于箭头函数表达式的信息。

我不知道C函数,但是正常函数和箭头函数几乎是一样的,只是有一些不同。

  1. 不能在箭头函数中使用this关键字
  2. 你不能像在普通函数中那样获得传递给箭头函数的参数列表。
  3. 普通函数是可调用的,也是可构造的,也就是说,你可以使用new关键字与普通函数,但箭头函数只能被调用。

当您在函数之前使用const时,这意味着该函数不能更改,您可以不使用它,因此,您可以重新定义您的函数或在代码中的某个地方为该名称分配变量!所以通常在函数名之前使用const。关于像function test = ...一样定义function前缀,它在react中不再有用。但是我完全推荐使用const来防止任何可能的变量名重用。此外,箭头函数与常规函数相对相似。不过,我个人更喜欢使用箭头功能。欲了解更多信息,请参阅:https://dmitripavlutin.com/differences-between-arrow-and-regular-functions/

虽然正则函数和箭头函数的工作方式相似,但有些区别是箭头函数没有自己的this。参数对象在箭头函数中不可用,但在常规函数

中可用。

最新更新