멋쟁이 사자처럼_1130

jojo·2021년 11월 30일
1

멋쟁이사자처럼

목록 보기
26/39
post-thumbnail

수업

반복문

for

  • for (시작변수;조건;내용끝) {내용}

forEach

array.forEach(e => console.log(e*3));

const array1 = ['a', 'b', 'c'];

array1.forEach(element => console.log(element));

// expected output: "a"
// expected output: "b"
// expected output: "c"

for of

let array = [10, 20, 30, 40, 50];
let i = 0
for (let value of array) {
console.log(value);
}


-> 10 20 30 40 50

평균

let result = 0;
let array = [10, 20, 30, 40, 50];
let i = 0

for (let value of array) {
    result += value;
}

console.log(result/array.length);

for : in은 인덱스값 출력 / of는 값을 출력

for in

let array = [10, 20, 30, 40, 50];

for (let value in array){
    console.log(value);
}
-> 0 1 2 3 4 

이렇게 하면 위치만 나오고,

let array = [10, 20, 30, 40, 50];

for (let value in array){
    console.log(array[value]);
}
-> 10 20 30 40 50

array[ ]를 넣어줘야 값이 나온다!

while

  • while (조건) {내용}
let i = 0;

while(i < 10){
    console.log(i);
    ++i;
}

0 부터 9까지 출력 된다.

  • 100이하의 짝수를 전부 더하기.
let i = 0;
let result = 0;

while ( i < 101){ 
    result += i;
     i+=2;
}

console.log(result);

do while

앞에껄 무조건 실행하고, while 조건에 맞을 때까지 반복한다.
그냥 참고 삼아서만 봅시다.

let num = 0;

do {
console.log(num);
num += 1;
} while (num < 11);

구구단

let i = 2;
let j = 1;

while ( i < 10) {
    while ( j < 10) { 
        console.log(`${i} X ${j} = ${i*j}`);
        j++;
    }

    i++;
    j=1;
}

2단에서 j가 10이 되어서 while문을 탈출하니까 다시 다음단으로 가기 전에 j를1로 만들어주어야 한다.

반복문의 break & continue

  • break
    중간에 멈추게 해준다.
for (let i = 0; i < 10; i++) {
    if (i == 5) break;
    console.log(i);
}

// 이렇게 되면 i가 5가 되면 멈추기 때문에 i는 0부터 4까지의 값만 나온다.

break를 만나면 다음 줄에 있는 코드를 실행하지 않고 반복문을 종료한다.

break - mozilla 참고링크:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break

  • continue
for (let i = 0; i < 10; i++) {
    if (i == 5) continue;
    console.log(i);
}

continue - mozilla 참고링크:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/continue

string

let s = 'abcdefABCDEF';

console.dir(s);
-> abcdefABCDEF

s.length
-> 12

s.indexOf('cde')
-> 2

s.search('ABC')
-> 6

s.indexOf('G')
-> -1

s.search('G')
-> -1

searchindexOf의 차이 - 참고링크:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/search

indexof는 시작값을 설정할 수 있고, search는 정규표현식을 사용할 수 있다.

s.slice(0, 3)
-> 'abc'

s.slice(7, 8)
-> 'B'

s.slice(6,9)
-> 'ABC'

s.substring(6,9)
-> 'ABC'

slicesubstring 동작방식이 같다.

차이: 음수값을 넣었을 때 결과값이 다르다.

substring은 -값을 0으로 출력한다. slice는 -값을 찾아간다.

substring - mozilla 참고링크:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring

s.substr(6,3)
-> 'ABC'

6번째부터 3개를 가져오겠다.

s.replace('ABC', 'hojun')
-> 'abcdefhojunDEF'

연습문제

1.1 다음 값의 평균을 구하세요.

let aver = [10, 20, 30, 10, 20, 30, 40, 10];
let average = 0;
for (let i = 0; i < aver.length; i++){
average += aver[i] / aver.length;
}

평균: 21.25

1.2 다음 값의 분산를 구하세요.

let variance = 0;
for(let i = 0; i< aver.length; i++){
variance += (aver[i]-average)**2
}

(variance/aver.length)**0.5

표준편차: 10.532687216470448
분산: 110.9375

2. 다음 string의 평균 값을 구하세요
'5, 4, 10, 2, 5'

내 답:

let a = '5, 4, 10, 2, 5';
let b = a.split(', ');

let result = 0;
for (let i = 0; i < b.length; i++){
result += +b[i] / b.length;
}

풀이 답:

let s = '5, 4, 10, 2, 5';
let splistS = s.split(',');
console.log(splistS);
let sum = 0;
for (var variable of splistS) {
  sum += parseInt(variable, 10);
}
console.log(sum/splistS.length);

풀이 답은 for of문을 사용했다.:)

생각

그래도 혼자 우주 속에서 허우적거리고 있었는데, 하나하나 풀어서 이해하려고 해보니 그래도 아아아주 조금은 풀 수 있는 것 같다.

느낀점

잘한점

  • 딥다이브..양도 정말 많고 내용도 쉽지는 않아서 더 혼란스럽다! 그래서 급하게 '(누구나 쉽게 배우는)자바스크립트'를 빌렸다. 그냥 포기하지 않고, 최대한 이해하려고 애쓰는 나 자신 칭찬해..
  • 오늘 수업도 중간에 우주에서 허우적거리다가 천천히 이해하려고 노력해보니, 그래도 연습문제 2번까지는 혼자 풀었다. 정말정말 대견하다. 그리고 자바스크립트 챌린지 끝난김에 자바스크립트 스터디에 들어갔다! 포기하는 절반이 되지 않기 위해!

고칠점

  • 손코딩을 하면 이해 잘 되는 것을 알면서 왜 안 할까..? 괜히 집중 안되는데 질질 끌지 말고, 할 때 몰입해서 공부할 수 있도록 하자!

계획

  • '(누구나 쉽게 배우는)자바스크립트' 1회독
  • 손코딩하면서 복습하기
profile
2021.11~

0개의 댓글