본문 바로가기

코드스테이츠

2021년 4월 7일 코드스테이츠 DAY-3(JS/Node)(Coplit)

반응형

TIL

 

코플릿(Pair) Conditional Expression 

문자열(Chapter) String

코플릿(Pair) String

변수와 자료형, 조건문, 문자열(Checkpoint)

Checkpoint Solution(zoom)


세 줄 요약

 

1. Coplit(코플릿)은 javascript로 뇌를 훈련시키는 최고의 도구이다.

2. Coplit(코플릿)을 Pair와 함께 한다는 것은 혼자서는 상상 못 할 사고방식을 배울 수 있는 좋은 기회다.

3. 코드스테이츠 추천. (엄청난 학습량을 보장한다.)


코플릿(Pair) Conditional Expression

14_isPythagorean


이 문제에서 알게된 점 : Math.max(...arrayName), Arguments

 

1. 함수에 입력된 세 가지전달 인자(Argument)중 가장 큰 것을 추출하기 위해 구글링을 하다가 알게 된 것은 배열에 전달 인자를 넣어 그것들을 Math.max(...arr)를 통해 불러낼 수 있다는 점.  이 검색의 결과를 아래의 많은 문제들에 대입하여 지겹도록 써먹었다. 

2. 글을 쓰다가 지금 알게 된 것은 전달 인자(Argument)를 굳이 배열에 안 집어넣어도 배열처럼 불러올 수 있다는 것과 이것을 배열처럼 length 속성을 쓸 수 있다는 것. 왜 이제 알았을까? 의심은 했었다. 하지만 시간에 쫓긴다고 차마 적용시킬 생각은 못한 것 같다.

3. arguments 객체는 모든 함수 내에서 이용 가능한 지역 변수이다. 객체를 사용하여 함수 내에서 모든 인수를 참조할 수 있다. 각 인수를 설정하거나 재할당할 수도 있다. 배열(Array)은 아니다. 하지만 실제 배열로 변환이 가능하다. 

출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments


해당내용은 삭제하였습니다.

 

위 문제에서 알게 된 점을 바탕으로 코드를 수정해보겠다.

 

해당내용은 삭제하였습니다.

 

이전에 비해 쓰기 편한가라고 물으면 글쎄 그건 아니고 코드가 짧아졌다고도 말할 수 없겠으나, arguments를 배열로 만들 수 있고, arguments[i]로 인자를 잡아낼 수 있음을 알게 됐다.

 

15_or

 

해당내용은 삭제하였습니다.

 

16_addOneSecond

 

해당내용은 삭제하였습니다.

 

문자열(Chapter) String

Achievement Goals

  • 문자열의 속성과 메소드를 이용해 원하는 형태로 만들 수 있다.
    • 문자열의 length라는 속성을 활용해 길이를 확인할 수 있다. str.length
    • 문자열의 글자 하나하나에 접근할 수 있다. str[1]
    • 문자열을 합칠 수 있다. word1 + " " + word2
    • 문자열을 원하는 만큼만 선택할 수 있다. str.slice(0, 3) 또는 str.substring(0, 3)
    • 영문을 모두 대문자로 바꿀 수 있다. str.toUpperCase()
    • 영문을 모두 소문자로 바꿀 수 있다. str.toLowerCase()
    • 문자열 중 원하는 문자의 index를 찾을 수 있다 str.indexOf('a') 또는 str.lastIndexOf('a')
    • 문자열 중 원하는 문자가 포함되어 있는지 알 수 있다. str.includes('a')

Advanced Challanges

  • 띄어쓰기 (" ")로 문자열을 구분하여 배열로 바꿀 수 있다. str.split(" ")
  • 위의 배열의 요소 사이에 띄어쓰기 (" ") 넣어 다시 문자열로 바꿀 수 있다. str.split(" ").join(" ")

 

코플릿(Pair) String

 

01_getFullName

 

해당내용은 삭제하였습니다.

 

02_checkAge

 

해당내용은 삭제하였습니다.

 

03_getLengthOfWord

 

해당내용은 삭제하였습니다.

 

04_computeAverageLengthOfWords

 

해당내용은 삭제하였습니다.

 

이 문제는 arguments들을 가져와 그것의 평균을 리턴하는 것이었다. 알게 된 점을 바탕으로 코드를 수정해보겠다.

function computeAverageLengthOfWords(word1, word2) {
  return (word1.length + word2.length)/arguments.length;
}
computeAverageLengthOfWords('park', 'me');
3

 

배열은 아니지만 .length속성을 사용할 수 있는 것을 활용해 보았다. 이 문제를 풀 당시 arguments의 수를 활용하면 참 좋을 텐데.... 하고 넘겨버렸던 게 생각난다. 그래도 오늘 알았으니까 됐다. 잊지 말자.

 

05_computeAverageLengthOfWords2

 

해당내용은 삭제하였습니다.

 

06_findShortestOfThreeWords

 

해당내용은 삭제하였습니다.

 

07_isOddLength

 

해당내용은 삭제하였습니다.

 

08_areValidCredentials

 

해당내용은 삭제하였습니다.

 

09_findMinLengthOfThreeWords

 

해당내용은 삭제하였습니다.

 

10_takeLetters

 

해당내용은 삭제하였습니다.

 

11_dropLetters

 

해당내용은 삭제하였습니다.

 

12_compareOnlyAlphabet

 

해당내용은 삭제하였습니다.

 

13_compareNumbers

 

해당내용은 삭제하였습니다.

 

14_compareNumberStrings

 

해당내용은 삭제하였습니다.

 

15_showTime

 

해당내용은 삭제하였습니다.


이 문제에서 알게 된 점 : Template Literal 

 

1. Template Literal이란 내장된 표현식을 허용하는 문자열 리터럴이다.

2. Template Literal 백 틱(` `)을 이용한다. 

3. `문장문장문$ {expression}장문장문장`에서 표현식과 텍스트는 함께 함수로 전달된다.

4. 편리하다. 더하기로 코딩하기 참 불편했는데 코드스테이츠에서 친절하게 힌트를 줬다. 


16_computeDifference

 

해당내용은 삭제하였습니다.

 

17_makeLastSeenMsg

 

해당내용은 삭제하였습니다.

변수와 자료형, 조건문, 문자열(Checkpoint) 

쪽지 시험과 같은 느낌으로 이때까지 배운 것들의 포인트를 짚어줬다. 총 7문제였다.


문제별 요점

 

1. 예시를 보여주고 변수의 선언과 할당을 가장 잘 설명한 것을 고르는 것이었다.

(let키워드로 변수 name을 선언하고, = data를 넣음으로 값을 할당함, 넣는다/같다라는 지양해야 할 것들을 짚어주었음)

2. 마찬가지로 변수의 선언과 할당을 다루었으며, 올바른 표기방식을 찾는 것이었다.

(let thing = '휴대폰', num = 3; 과 같이 ,를 쓰면 let을 재선언하지 않아도 되고 이어 쓸 수 있음. let thing = '휴대폰'; let num = 3;이 가장 일반적임. 어느 쪽으로도 좋으나 혼용을 피하라고 하였음 )

3. 임의의 값을 입력받아 수(number)의 형태로 리턴하는 함수를 다루었다. 

(parseFloat() : 문자열을 분석해 실수로 반환 / Number() :  Number 객체는 숫자 값으로 작업할 수 있게 하는 래퍼 객체이며 Number객체는 Number()생성자를 사용하여 만듦. 인수를 숫자로 변환할 수 없으면 NaN을 리턴함)

4. 함수 선언식, body안에서 일어나는 변수 선언과 return 개념을 잘 알고 있느냐를 판단하는 문제였다.

5. string의 속성들을 잘 알고 있느냐를 묻는 문제였고 난 틀려버렸다. ㅠㅠㅠ

(문자 열중 원하는 문자의 위치 index를 찾기위해서는 .indexOf 속성을, 문자열에 원하는 문자가 있는지를 알기 위해서는 .includes 속성을 사용해야 함을 잊지 말자. )

6. 함수 선언과 호출의 개념을 묻는 문제였다. 

7. 조건문의 작성 순서를 묻는 문제였으며 조건문 작성 시 겹치는 부분을 먼저 작성해야 return이 가능하다는 것을 짚어주는 문제였다. coplit에서 풀었기에 쉽게 해결할 수 있었다.


Checkpoint Solution(zoom)

Checkpoint를 풀이하는 시간이었으며, 수강생들이 직접 풀게 하는 점도 쫄깃쫄깃하고 재밌었다.

 

 

3일째 되는 날이지만 점점 시간이 촉박해지는 것을 느낀다. 하지만 많은 것을 하는 만큼 보람차게 느껴진다. 오늘은 코플릿에서 내가 쓴 코드를 올렸다. 간결하지도, 뛰어나지도 않지만 TIL을 적으며 다시 보는 곳에서 하루를 정리하고 새로운 것을 알게 되는 것 같다. 꾸준하게 한번 해보자. 분명히 늘 것이다.

반응형