에 따라 영업의 요청에 나는 (희망, 자신의 바보를하지 않고 : P)의 칩 것이다
우리는 재귀가 더 우아한 코딩 방법이라는 데 모두 동의했다고 생각합니다. 잘 수행하면 유지 관리가 용이 한 코드를 만들 수 있습니다. IMHO는 0.0001ms를 줄이는 것만 큼 중요합니다.
JS가 테일 콜 최적화를 수행하지 않는다는 주장에 관한 한 ECMA5의 엄격한 모드를 사용하면 TCO가 더 이상 사실이 아닙니다 . 그것은 내가 한참 전에 너무 행복하지 않은 것이었지만, 적어도 나는 arguments.callee
엄격 모드에서 왜 오류가 발생 하는지 알고 있습니다. 위 링크가 버그 보고서에 연결되어 있음을 알고 있지만 버그는 WONTFIX로 설정되어 있습니다. 또한 표준 TCO는 ECMA6 (2013 년 12 월)입니다.
본능적으로 JS의 기능적 특성을 고수하면서 재귀는 99.99 %의 시간보다 더 효율적인 코딩 스타일이라고합니다. 그러나 Florian Margaine은 병목 현상이 다른 곳에서 발견 될 가능성이 있다고 지적합니다. DOM을 조작하는 경우 가능한 유지 관리 가능한 코드 작성에 초점을 맞추는 것이 가장 좋습니다. DOM API는 느리다.
어느 것이 더 빠른 옵션인지에 대한 명확한 대답을 제공하는 것은 불가능하다고 생각합니다. 최근에 많은 jspref가 Chrome의 V8 엔진이 일부 작업에서 엄청나게 빠르다 는 것을 보여주었습니다 .FF의 SpiderMonkey에서 4 배 느리게 실행되고 그 반대도 마찬가지입니다. 최신 JS 엔진에는 코드를 최적화하기 위해 모든 종류의 트릭이 있습니다. 나는 전문가는 아니지만 V8은 클로저 (및 재귀)에 대해 고도로 최적화 된 반면 MS의 JScript 엔진은 그렇지 않다고 생각합니다. DOM과 관련하여 SpiderMonkey는 종종 더 나은 성능을 발휘합니다 ...
요컨대, JS에서 항상 그렇듯이 어떤 기술이 더 성능이 좋을지는 예측 불가능에 가깝습니다.