대부분의 프로그래밍 언어에서 foreach는 구문 설탕일 뿐만 아니라 경계 검사를 직접 생략하는 등 컴파일 최적화를 통해 더 나은 성능을 제공할 수 있습니다. 이러한 최적화를 더 잘 달성하기 위해 foreach는 디자인 제약 조건도 제공합니다. 예를 들어 C#에서 반복 프로세스는 컨테이너 자체에 대한 변경(요소 추가 또는 삭제)을 허용하지 않으며 중단도 허용되지 않습니다(우리는 모든 조건문이 명령 캐시 및 파이프라인의 성능을 감소시킨다는 것을 알고 있습니다). 🎜
🎜Angular는 모델 변경 사항을 더 잘 모니터링하기 위해 일련의 기본 JS 메서드를 래핑합니다. 이러한 JS 메서드의 사용법은 기본적으로 이전과 동일합니다. 말씀하신 forEach는 1개이고, $timeout 등도 있습니다. Angular의 데이터 바인딩 방법에 대한 자세한 내용은 http://harttle.com/2015/06/06/angular-data-bound-and-digest.html🎜을 참조하세요.
먼저 귀하의 질문에 답변해 드리겠습니다.
forEach
는 루프에서 벗어날 수 없습니다.forEach
是不能跳出循环的。在绝大多数编程语言中,
foreach
不仅仅是语法糖,通过编译优化它可以提供更好的性能,比如直接略去边界检查。为了能更好地做到这些优化,foreach
在设计上也给出了制约。例如在C#中,迭代过程不允许更改容器本身(增删元素),不允许break(我们知道,所有的条件语句都会降低指令缓存和流水线的性能)。Angular包装了一系列的原生JS方法,为的是能够更好地监听模型变化。这些JS方法的使用方式和原来基本没有区别。你说的
대부분의 프로그래밍 언어에서forEach
就是一个,还有$timeout
foreach
는 구문 설탕일 뿐만 아니라 경계 검사를 직접 생략하는 등 컴파일 최적화를 통해 더 나은 성능을 제공할 수 있습니다. 이러한 최적화를 더 잘 달성하기 위해foreach
는 디자인 제약 조건도 제공합니다. 예를 들어 C#에서 반복 프로세스는 컨테이너 자체에 대한 변경(요소 추가 또는 삭제)을 허용하지 않으며 중단도 허용되지 않습니다(우리는 모든 조건문이 명령 캐시 및 파이프라인의 성능을 감소시킨다는 것을 알고 있습니다). 🎜 🎜Angular는 모델 변경 사항을 더 잘 모니터링하기 위해 일련의 기본 JS 메서드를 래핑합니다. 이러한 JS 메서드의 사용법은 기본적으로 이전과 동일합니다. 말씀하신forEach
는 1개이고,$timeout
등도 있습니다. Angular의 데이터 바인딩 방법에 대한 자세한 내용은 http://harttle.com/2015/06/06/angular-data-bound-and-digest.html🎜을 참조하세요.http://stackoverflow.com/a/13844508/2586541
으아악
Js의 기본 forEach와 jquery는 각각 다음과 같습니다. true를 반환하고 후속 작업을 중단하고 계속해서 false를 반환하고 전체 탐색을 종료합니다. Angular에 대해 잘 모르겠습니다. 이런 종류의 구문 설탕은 비슷할 것입니다.
@harttle 반복되는 데이터가 너무 크면 성능에 큰 영향을 미치지 않습니다.