주의할점은 변수의 값을 계속 변화시켜줘서 언젠가는 반복문이 끝나게 설정해야 함.
(실수로 무한루프에 빠졌으면 ctrl + c 눌러서 중단)
- temperature라는 변수를 선언하고 값을 할당. (begin)
- temperature가 25보다 작은지 연산. 결과값이 true라면 계속 실행. false라면 for 문 종료 (condition)
- 중괄호 안의 코드가 실행.
- temperature에 1을 더해서 재할당하고 2번 과정부터 다시 반복. (step)
예시) 1~10까지의 숫자중 3으로 나누었을 때 나머지가 0인 숫자 구하기
함수란?
특정 작업을 수행하는 코드의 집합
똑같은 코드... 이걸 계속 하는건 너무 노동력 낭비가 심하다. 꺼내먹고 싶을때 꺼낼 수 있게 저장해두는게 함수라고 보면된다.
함수의 선언
function 함수명(매개변수들...) {
이 함수에서 실행할 코드들
return 반환값
}
함수 호출시 코드의 흐름을 복기해보자!
- 함수 calculateAvg를 호출하면서 변수 priceA와 priceB를 매개변수로 전달
- 함수 calculateAvg의 바디 코드가 실행됨. 이 때 1번에서 전달한 매개변수의 값이 함수를 선언할 때 썼던 매개변수명인 price1, price2에 할당되었다고 보면 됨
- 함수의 바디 코드가 최종적으로 변수 avg를 리턴하고 있고, 이것이 변수 avg1에 할당됨
this는 클래스를 사용해 만들어질 객체 자기 자신을 의미하고 this 뒤에 붙는 name, price, company는 객체의 속성
매개변수 name, price, compay를 객체의 속성 name, price, company에 각각 할당하고 있는 것
9번째 줄은 new라는 키워드를 먼저 써주고 클래스명을 마치 함수처럼 호출하면서 매개변수값을 전달해 줘서 객체를 만듦.
const 변수명 = {
속성명: 데이터,
메소드명: function () { 메소드 호출시 실행할 코드들 }
}
결과적으론 클래스를 활용해 객체를 만든 것과 동일. 그렇다면 왜 굳이 복잡하게 클래스를 정의할까???
그 이유는 바로 "재사용성". 한번 클래스를 만들어두면 같은 속성과 메소드를 갖고 있는 객체를 훨씬 더 간결하게 코드로 만들 수 있다.
같은 타입의 데이터들을 하나의 변수에 할당하여 관리하기 위해 사용하는 데이터 타입
배열에 있는 데이터 각각을 우리는 요소 (element) 라고 부름
배열에서는 인덱스(index) 가 객체의 속성명과 같은 역할을 해줌
- 배열의 인덱스는 0부터 시작이니 변수 i의 시작값도 0으로
- i가 배열의 길이보다 작을 때에만 반복문 안의 코드 실행
- 모든 요소를 빠짐없이 다 출력해야 하므로 i는 1씩 증가
배열과 함께 좀 더 자주 쓰이는 간단한 형식의 for문
배열에서 요소들을 차례대로 하나씩 찾아 color라는 변수에 할당한다. 자동으로 배열의 끝까지 반복문이 실행되기 때문에 첫번째 for 문보다 쓰기 편하다.