2016-12-12 1 views
-8

B1

if (this.id === 'username') { 
    switch (this.value.length) { 
    case 0: 
    case 1: 
    case 2: 
     // 'Username must be at least 3 characters' 
     break; 
    case 3: 
    case 4: 
    case 5: 
    case 6: 
    case 7: 
    case 8: 
    case 9: 
    case 10: 
    case 11: 
    case 12: 
    case 13: 
    case 14: 
    case 15: 
    case 16: 
    case 17: 
    case 18: 
    case 19: 
    case 20: 
     // Another if else statement 
     break; 
    default: 
     // 'Username must be at most 20 character' 
    } 
} 

B2

if (this.id === 'username') { 
    if (this.value.length < 3) { 
    // 'Username must be at least 3 characters' 
    } else if (this.value.length > 20) { 
    // 'Username must be at most 20 characters' 
    } else { 
    // Another if else statement 
    } 
} 

는 나 자신이 브라우저 개발자 도구를 사용하여이 테스트 것입니다,하지만 불행히도 나는 프로그래밍에 n00b 해요, 아직 개발자 도구를 사용하는 방법을 모른다 모든 것 잘. 모든 입력은 크게 감사하겠습니다.더 빨리 실행할 수있는 코드 블록은 무엇입니까?

+7

, 당신은 아마도 성능과 관련해서는 안됩니다. –

+1

요점은, 당신이 그것을 어떻게하는지 배워야한다는 것입니다. 문제가되는 도구를 사용하는 방법에 대한 질문이 있지만이 질문에 어떤 노력이 있는지는 알 수 없습니다. –

+2

@ gatekeeper01 아니요,이 커뮤니티는 실제 질문에 도움이되는 매우 엄격한 가이드 라인을 가지고 있습니다. 귀하의 무역에 관한 도구를 방금 배운 경우 귀하의 질문은 약 29 초 만에 알아낼 수 있습니다. 다른 사람이 당신에게 어떻게하는지 또는 대답이 무엇인지를 알려줌으로써 어디에도 가지 않을 것입니다. 시행 착오를 통해 더 많은 것을 배우게됩니다. 시간이 없다면 시간을 벌어 라. – TheValyreanGroup

답변

0

두 번째 것은 입니다. 항상 가독성을 위해 더 나은 선택이되고 switch 문을 사용하면 성능 이점 (심지어 존재하는 경우)이 한계가됩니다. </> 연산자는 아마도 네이티브 코드의 명령어이거나 두 가지 일 수 있습니다. 어떤 switch 문도 그렇게 작게 컴파일 될 것이라고는 상상할 수 없습니다.

차이점을 테스트하는 데 신경 쓰지 않을 것입니다. 그 몇 줄이 프로그램에서 병목 현상이 있음을 증명할 수 없다면 시간 가치가 없어야합니다. (그럴 경우 대단히 놀랄 것입니다.)

또한 실제로 성능이 좋으면 length을 캐싱하고 작은 가독성을 얻을 수 있습니다. 당신이 개발 도구를 사용하지 않은 "n00b"의 많은 경우

if (this.id === 'username') { 
    var length = this.value.length 
    if (length < 3) { 
    // 'Username must be at least 3 characters' 
    } else if (length > 20) { 
    // 'Username must be at most 20 characters' 
    } else { 
    // Another if else statement 
    } 
} 
+0

'길이'를 저장한다는 것은 'this.value.length'에 접근 한 결과를 지역 변수 (간단히 말해'길이 '라고 부름)에 할당하는 것을 의미하므로 동일한 표현식을 두 번 이상 평가할 필요가 없습니다. – gyre

+0

오, 오, 그래, 맞아. 네가 뭘 추천했는지 모르겠다. 나는 그것을 실제로 구현하면 당연히 그렇게 할 것입니다. 그럼에도 불구하고 명확히하기위한 감사합니다. – gatekeeper01

0

이것은 무시할 수 있으며 실제로 사용자의 Javascript 파서에 따라 다릅니다.

두 번째 옵션을 사용하는 것이 좋지만 가독성이 뛰어나고 나중에 변경하는 것이 훨씬 쉽습니다. 또한 성능에 크게 신경 쓰면 두 번째 문자 수가 적어 사이트로드 속도가 빨라집니다.