Javascript 在html中使用表达式与调用使用该表达式的函数有什么区别吗?

Javascript 在html中使用表达式与调用使用该表达式的函数有什么区别吗?,javascript,angularjs,Javascript,Angularjs,我们有一个组件,使用ngIf根据条件显示或隐藏组件。我们可以通过两种方式做到这一点。。 1) *ngIf=“a==b” 2) *ngIf=“CheckForeEquivalence()”… 这些实现有什么不同吗?我的主要关注点是,从实现性能的角度来看,哪一个更好?在某些情况下,我们需要一个而不是另一个吗?Angular正在模糊html和javascript之间的界限。这一切都要经过一个编译器,所以我严重怀疑这样或那样做是否会有任何性能提升,如果有的话,这将是毫秒的分数 真的,在哪里包含逻辑将取决

我们有一个组件,使用ngIf根据条件显示或隐藏组件。我们可以通过两种方式做到这一点。。 1)
*ngIf=“a==b”
2) 
*ngIf=“CheckForeEquivalence()”…


这些实现有什么不同吗?我的主要关注点是,从实现性能的角度来看,哪一个更好?在某些情况下,我们需要一个而不是另一个吗?

Angular正在模糊html和javascript之间的界限。这一切都要经过一个编译器,所以我严重怀疑这样或那样做是否会有任何性能提升,如果有的话,这将是毫秒的分数

真的,在哪里包含逻辑将取决于你。在这种情况下,对于ngIf来说,使用选项1对我来说是有意义的,因为当有人过来阅读您的代码时,它会在那个里为他们拼写出来,他们不必去寻找其他函数

话虽如此,(为了解决标题中更一般的问题),当我尝试在html中使用复杂的逻辑和函数时,遇到了一些问题。我想我试着用onClick做一些事情,并在html中声明工作,但没有成功。但是,当我将它包装在一个函数中并将其移到我的javascript页面时,它工作得很好

TL;DR


性能改进可以忽略不计,请选择代码可读性和可维护性的第一个选项。简短回答:在您的示例中,没有区别


详细回答:通常你可以说angular应用程序的性能取决于
摘要
周期时间-如果每个摘要都对
ng中的所有表达式进行评估,则
ng中的所有表达式都会进行评估。评估所需的时间,即
a==b
a!=1&&b==c
是一个小常数,对于阅读/修改代码的人来说这是显而易见的,但是计算foo(a,b)
所需的时间取决于该函数。因此,在这些地方根本不使用函数是一种很好的做法。(当然,您打算在ng click、ng enter等指令中使用函数)

我认为性能方面几乎是一样的,但如果您使用函数,则可以在其中执行更复杂的操作。