2014-11-15 2 views
-3

몇 가지 이유로 switch 문을 사용할 수 없으며 Javascript가 새로 도입되어서 내 문제가 'cat === "문자열과 더 관련이 있다는 느낌이 들었습니다. 스위치가 아닌 부품.스위치/비교 문 문제

이 예제에서는 'data.cat'값이 Starters라고 가정합니다. 당신은 바이올린에서 볼 수 있듯이

function (data) { 
     data = JSON.parse(data); 
     if (!data.success) { 
      // An error was thrown in the controller 
      alert(data.message); 
     } else { 
      switch (cat = data.cat) { //data.cat is Starters 
       case 0: 
        cat === "Starters"; 
        console.log("Test a= " + cat); 
        break; 
       case 1: 
        cat === "Mains"; 
        console.log("Test b= " + cat); 
        break; 
       case 2: 
        cat === "Deserts"; 
        console.log("Test c= " + cat); 
        break; 
       default: 
        console.log("Shit.." + data.cat); 
        break; 
      } 
     } 
    }); 

http://jsfiddle.net/76fe9kk7/3/

는, 로그는 기본을보고합니다. 왜 이런거야?

+2

물어보기 전에 [스위치가 사용되는 방법]을 배우십시오 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch). * 첫 번째 경우 (0)가 true와 같아야 함에도 불구하고 전혀 이해가되지 않습니다. '0'은''Starters''와 같은가요? –

+0

Plalx에 대한 의견에서 언급했듯이 제 대신 나를 이해하는 것은 어리석은 일이었습니다. 이 http://www.w3schools.com/js/js_switch.asp 예제를 읽은 후에는 스위치 번호가 매겨 졌다고 느꼈습니다. 내가 알기로, 나는 틀렸다. 그러나 기록을 위해 나는 그것을 직접 고치려고 많은 시간을 보냈습니다. 나는 방금 전 사건의 가치를 간과했다. 내 나쁜 .. – Doug

+1

그런데 W3Schools는 고품질 JavaScript를 배울 수있는 곳이 아닙니다. [MDN 가이드] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide)에서보다 깊이있는 정보 (올바른 정보)를 제공합니다. 더 명확한 설명도이기는 것입니다. Btw, 그 링크는 귀하의 질문의 중복되지 않습니다. (단 한 번의 주석으로 "by by way"을 두 번 사용 했습니까?) –

답변

3
var cat = "Starters"; 
switch (cat) { 
    case "Starters": 
     console.log("Test a= " + cat); 
     break; 
    case "Mains": 
     console.log("Test b= " + cat); 
     break; 
    case "Deserts": 
     console.log("Test c= " + cat); 
     break; 
    default: 
     console.log("Shit.." + cat); 
     break; 
} 
3

스위치가 문자열 값으로 만들어지며 모든 경우에 숫자 값이 필요하다면 왜 기본값이 아닌 다른 값을 입력합니까?

"이 예제에서는 'data.cat'의 값이 Starters라고 가정합니다."

이 경우 switch (cat = data.cat)은 기본적으로 switch ('Starters')을 의미합니다. 분명히 그것은 항상 기본 경우에 갈 것입니다.

+0

Gah, 지금 내가 잘못 알고있는 부분을 봅니다. case 0, case 1 등이 switch 문을 명령하는 방법이라고 생각했습니다. W3S 예제를 완전히 이해하지 않고 사용하면 그럴 것이라고 생각합니다. 정말 고맙습니다. – Doug