-
JavaScript 100제 오답노트 26번_행성문제 2Language/JavaScript 2022. 10. 6. 00:59
JEJU CODING BASE CAMP - CODE FESTIVAL
JavaScript 100제
26. 행성 문제2
우리 태양계를 이루는 행성은 수성, 금성, 지구, 화성, 목성, 토성, 천왕성, 해왕성이 있습니다. 이 행성들의 영어 이름은 Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune입니다. 행성의 한글 이름을 입력하면 영어 이름을 반환하는 프로그램을 만들어 주세요.
//문제 답안 const planets = { '수성' : 'Mercury', '금성' : 'Venus', '지구' : 'Earth', '화성' : 'Mars', '목성' : 'Jupiter', '토성' : 'Saturn', '천왕성' : 'Uranus', '해왕성' : 'Neptune', }; const name = prompt("행성의 이름을 입력하세요."); console.log(planets[name]); //내 답안 const planets = { "수성" : "Mercury", "금성" : "Venus", "지구" : "Earth", "화성" : "Mars", "목성" : "Jupiter", "토성" : "Saturn", "천왕성" : "Uranus", "해왕성" : "Neptune", // "krPlanet" : "bull shit" } let krPlanet = prompt("행성 이름을 넣어봐") console.log(planets.krPlanet); // undefined // 만약 "krPlanet"이라는 프로퍼티가 있다면 그 값 "bull shit"을 반환 cosnole.log(planets[krPlanet]; // 입력 값에 따라 영문 행성이름 출력 // krPlanet을 객체의 프로퍼티(키)로 인식, so []접근법 써야함
-> 내 답안을 실행하면 console.log 값은 undefined가 나온다.
일반적으로 객체의 프로퍼티의 벨류에 접근하는 방식은 obj.key = value 이다. 그런데, 접근할 value의 키를 변수나 식별자로 가져다 쓸 경우 점(.)접근 법이 아니라 대괄호([]) 접근법을 사용해야 한다. 점 접근법으로 벨류에 접근할 경우 krPlanet이라는 문자 자체를 planets의 프로퍼티로 인식하기 때문이다.
'Language > JavaScript' 카테고리의 다른 글
JavaScript 100제 오답노트 37번_반장선거 (0) 2022.10.24 다시 봐도 헷갈리는 배열 메소드 정리_filter, map, forEach (0) 2022.10.21 JavaScript 100제 1부 오답노트 (1~20) (0) 2022.09.30 삼항연산자(조건부연산자, ?) (0) 2022.09.22 Value Types and Reference Types (0) 2022.09.22