Hangman Game, VanillaJS - (9)
Hangman Game
배운점
-
svg
-
SVG란?
- Scable Vector Graphics의 약자로 2차원 그래픽을 텍스트 편집기에서 픽셀 단위로 수정할 수 있는 XML 파일 형싱의 마크업 언어이다.
- 픽셀단위로 조작하기 때문에 해상도가 깨지지 않는다.
- 평면의 컬러 아이콘만 가능하다.
- declarative하다.
- svg태그로 선언을 시작하고, height width가 속성으로 주어지면 height * width 내의 사각형의 픽셀을 다룰 수 있다.
- 직선은
으로 사각형은 원은 태그가 등 여러 도형이 있다.
<svg height="250" width="200" class="figure-container"> <!-- Rod --> <line x1="60" y1="20" x2="140" y2="20" /> </svg>
-
- 템플릿 리터럴에서 변수에 배열을 넣을때
- 템플릿 리터럴
${}
에서 변수로 배열을 넣으면 배열의 원소간에 ,를 추가한 모양으로 출력된다. (arr.join(‘,’)형태)
- 템플릿 리터럴
-
e.key, keyCode
- 강의에서는 사용자가 입력한 키를 알기위해 event.keyCode를 사용했는데 keyCode는 입력받은 키의 아스키코드를 반환하는 옛날 방법으로 deprecated된 방법이다.
-
e.key는 사용자가 입력한 키를 바로 문자열로 반환한다.
// Keydown letter press window.addEventListener('keydown', (e) => { // Filter special key(Ctrl, Alt, Shift) if (e.key.length > 1) { return false; } if (isAlpha(e.key)) { const letter = e.key; if (selectedWord.includes(letter)) { if (!correctLetters.includes(letter)) { correctLetters.push(letter); displayWord(); } else { showNotification(); } } else { if (!wrongLetters.includes(letter)) { wrongLetters.push(letter); updateWrongLettersEl(); } else { showNotification(); } } } });
-
regular expression, replace 함수 옵션,
- 자바스크립트에서의 정규표현식(regular expression) 이다.
- 파이썬에서의 정규표현식과 거의 비슷하고 쓰는 함수나 형태만 다르다.
- replace함수의 g옵션은 매칭되는 첫 문자만이 아닌 문자열 전체에 대해 replace를 하는 옵션이다.
// isAlpha const isAlpha = (strs) => { return /[a-zA-Z]/.test(strs); };
// Show hidden word const displayWord = () => { wordEl.innerHTML = ` ${selectedWord .split('') .map( (letter) => ` <span class='letter'> ${correctLetters.includes(letter) ? letter : ''} </span> ` ) .join('')} `; const innerWord = wordEl.innerText.replace(/\n/g, ''); if (innerWord === selectedWord) { finalMessage.innerText = 'Congratulations! You won! 👍'; popup.style.display = 'flex'; } };
Leave a comment