-
Javascript- prompt / length / sliceexplore 2023. 9. 16. 21:58728x90
alert, prompt, slice 등을 익히면서 푼 두 가지 문제를 다시 정리.
환경
Chrome 브라우저, iMac 사용. 아무 사이트를 하나 골라서 개발자 도구(Developer Tool)로 Source > snippet을 선택해서 실행했고, 콘솔(Console)에서 verify 하면서 진행했다.
#1. 남은 글자 수 출력
140자까지만 입력할 수 있는 경우, 몇 자가 남았는지 알려주기. 이 문제는 아래와 같이 세가지 단계로 나눠볼 수 있다.
1. 문장을 입력할 수 있는 빈칸 띄우기
2. 글자수를 계산하기
3. 140자 중 몇자를 더 쓸 수 있는지 알려주기tweet이라는 var를 정의한 후, prompt를 활용해서 문장을 입력하도록 한 후 length로 글자 수를 세고, 몇 자가 남았는지 alert으로 띄웠다.
var tweet = prompt("Compose your tweet:"); var tweetCount = tweet.length; alert("You have written "+ tweetCount + " characters, you have "+ (140-tweetCount)+" characters remaining.");
#2. 첫 번째 글자만 대문자로 바꿔서 인사와 함께 출력하기
사용자가 입력한 영어 이름을 첫 번째 글자만 대문자로 바꿔서 인사와 함께 출력하기 (예. Hello, Gianna!). 두번째 문제는 1번보다 약간 복잡하고 지금까지 배운 자바스크립트를 총동원해야했기때문에 시간이 조금 더 걸렸다.
1. 이름을 입력받기
2. 모든 글자를 소문자로 바꾸기
3. 첫번째 글자와 나머지 글자를 분리하기
4. 대문자로 바꾼 첫 글자와 이름의 나머지 부분을 합쳐서 출력하기var name = prompt("What is your name? "); name = name.toLowerCase(); var nameslice1 = name.slice(0, 1); var nameslice2 = name.slice(1, name.length); alert("Hello, "+ nameslice1.toUpperCase() + nameslice2);
실수하거나 헤맨 것
1. slice를 아래처럼 쉼표(,)가 아닌 마침표(.)를 썼다.
slice(1.3)
2. 전체 글자 수를 모르는데, 첫 번째 글자를 뺀 나머지 글자를 어떻게 분리하지? 이 부분을 꽤 한참 고민했는데 length로 해결했다.
var nameslice2 = name.slice(1, name.length);
느낀점
문제는 최소 단위로 나눠서 한 번에 하나씩 해결하기.
개발은 문제를 바라보고, 인식하고, 해결하기 위해 시도하는 과정이구나. 이 말이 어떤 의미인지 어렴풋이 와닿는 하루였다. string에 대한 이런저런 기능을 연습했지만 "급한 마음으로 문제를 한 번에 풀려고 하지 말아야 한다"는 것을 절실히 느꼈다.
차근차근 문제를 다시 정의하기
1번 문제는 간단했으니 한 번에 풀 수 있었지만, 2번도 같은 방식으로 접근하니 막막했다. 문제 자체에 답을 낼 수 있는 프로세스가 이미 담겨있으니, 하나씩 하나씩 단계를 나눠서 문제를 다시 정의하는 습관을 들여야겠다.
특히 지금의 나처럼 완벽한 초보라면 더욱 이런 과정을 거치는 것이 좋겠다. 그리고 꼭 한 줄 한 줄 console에서 verify 하면서 차근차근 진행할 것.
참고
Alert method https://developer.mozilla.org/en-US/docs/Web/API/Window/alert
Prompt method https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt728x90'explore' 카테고리의 다른 글
Solo SaaS를 위한 버블(Bubble.io) 탐색 (1) 2023.09.22 Javascript- if/else 조건 출력 (0) 2023.09.20 SSH Key 만들고 등록하기 (0) 2023.09.13 Zoom보다 가벼운 비디오챗- Whereby (12) 2023.09.11 Momentum으로 시작하기 (12) 2023.09.11