카테고리 없음

[TIL]Javascript

note-for-development 2024. 1. 2. 22:15

1. 개념 정리

객체지향: 순서대로가 아닌, 객체라는 그룹으로 묶어서 처리한다. input, output, system의 관계와 유사.

동적 타이핑: 런타임 시점에서 데이터 타입이 결정된다.

메소드 : 객체 내부의 함수

 

객체의 생성 : 중괄호 안에 쉼료로 구분하여 만든다. 이름과 값을 쌍으로 갖는다.(key-value)

person = {name: TT, kind: cat};

 

2. 적용 가능한 메소드 등

length 길이(number) substring 일부 제거 search 찾기 split 열을 객체로
concat 이어붙이기 slice 일부 제거 replace 대체하기    

 

객체의 object.

keys 이름 entries 이름과 값 json.stringify 문자열화    
values assign 일부 복사 ... 두 객체 합하기    

 

배열(array)

push 뒤에 추가 shift 앞에 제거 splice 삭제 후 교체    
pop 뒤에 제거 unshift 앞에 추가 sliced 자른 후 새로운 배열로 생성  

*sliced는 자른 배열을 새로운 이름으로 선언해주지 않으면 확인되지 않는다.

let sliced = fruits.slice(1,2);

console.log(sliced);

이 경우 fruits.slice(1,2);

console.log(fruits);는 slice가 적용되지 않는 fruits 배열이 나온다.

 

3. 해당 개념의 적용과 중요한 점

- 객체와 배열을 함수를 통해 사용하면 반복적인 사항을 여러번 중복으로 사용하지 않아 편의성이 증대된다.

- 런타임 시점에 데이터 타입이 결정되므로 특히 더하기(+) 사용에 주의하여 number와 string 값이 잘 적용되었는지 확인해야 한다.

- 메소드 중에서는 새로운 이름으로 선언해야만 하는 것이 있으며, 새로운 배열을 생성할 경우 이에 해당한다.

 

4. 시행착오 및 문제 해결 과정

//1. 문자열 연습하기. p의 개수, y의 개수 세기, 같은지 확인, default는 true.

let S = "ppyyeeeyyY"
let countp=0;
let county=0;

for (let i=0; i<=50; i++) {
if (S[i]==="p" || S[i]==="P") {countp++;}
if (S[i]==="y"|| S[i]==="Y") {county++;}
}

console.log(countp);
console.log(county);

if (countp===county) {
console.log(true);
}
else { console.log(false);}

1) for 문의 조건을 명시할 때는 쉼표(,)가 아니라 세미콜론(;)을 쓰며 오류가 생기면 반괄호(})에 오류가 발생한다.

2) if는 항상 else if만 사용하는 것이 아니라 if 2개를 사용해도 된다.

3) for의 결과는 for 문을 빠져나가도 값을 나타낸다.

4) 오류가 뜨는 곳이 항상 잘못된 것이 아닌 것에 주의한다.

 

//2. 반복문, 조건문 연습하기. 정수들의 배열, 부호의 배열, 실제 정수의 합을 구하여 리턴

let absolutes = [4, 7, 12];
let signs = [true, false, true]
let sum = 0;

for (let j=0; j<=1000; j++) {
if (signs[j]===true) {
sum = sum + absolutes[j];}
if (signs[j]===false) {
sum = sum - absolutes[j];}
}
console.log(sum)

스스로 작성한 코드.

개선점: sum+=absolutes 로 짧게 작성도 가능하다.

 

function solution(absolutes, signs) {
let answer = 0;
for (let i=0; i<absolutes.length; i++) {
signs[i] ? answer += absolutes[i] : answer-=absolutes[i]
}
return answer;
}

답변으로 제시된 코드.

개선점: function을 사용하는 연습이 필요하다.

True값이 input되는 경우 그 자체로 조건이 될 수 있다.

 

5. 하루 회고

- 새로운 형식으로 TIL을 작성해 보았다.

좀 더 개선점을 알아보기 쉽게 만드는 방법을 찾아봐야 겠다.

 

- 강의를 두번 듣고 메모하려는 시도는 적절하지 않은 공부 방법같다.

 

- 조바심 내지 말고 꾸준히 가자.

순위표가 있는 수업은 점점 초조해져 계속 확인하게 된다.

비교하지 말고 내 속도에 맞게 가자.