본문 바로가기
프로그래밍

자바스크립트 : Array, Loops, and Objects I (코드카데미)

by Youngbin Kwon 2020. 8. 12.

공부 출처 : 코드카데미 (참조) 강의 (5. Javascript: Arrays, Loops, and Objects)

 

 

1. 스코프 (Scope)

스코프(범위)란 선언한 변수가 접근되거나 참조될 수 있는 범위를 말한다. 일부 변수는 프로그램 전체에서 참조될 수 있지만, 특정 변수는 특정 함수 안에서만 접근이 가능하기도 하다.

 

다양한 스코프는 Global Scope (전체 프로그램에서 접근될 수 있는 요소), File / module Scope (특정 파일 및 모듈 내에서 접근 가능한 변수 또는 함수), Function Scope (특정 함수 내에서만 접근 가능), Code Block Scope ({}로 선언된 코드 블럭 내에서만 접근 가능)로 분류된다.

 

2. 배열 (Arrays)

배열은 여러 데이터들이 저장된 리스트를 뜻하며, 어떤 데이터 타입 형태의 변수도 보관할 수 있다. [ ] 를 사용하여 선언할 수 있다.

 

Index는 배열 내 요소의 위치값이며, 앞에서부터 0의 index 번호를 갖는다.

배열의 길이는 Array.length로 표기할 수 있다.

.push() 또는 pop()을 사용하여 배열 내에 요소를 신규 추가하거나 삭제할 수 있다.

 

3. 반복문 (Loop)

반복문을 통해 특정 행동을 반복해서 수행할 수 있게 설정할 수 있으며, 보통 for (초기문, 조건문, 완료 후 지시문)으로 설정할 수 있다.

for (let i = 0; i < array.length; i++){
  console.log(array[i]);
}

// Output: Every item in the array

While문은 특정 조건을 만족할 때에 선언된 기능을 아래와 같이 수행할 수 있다. do...while문이 while문과 다른 점은 while 문은 조건을 먼저 판별 후 충족한다면 {}에 있는 지시사항을 이행하는 반면에, do...while문은 먼저 do {} 내부의 지시사항을 수행한 후 while 내부의 조건을 확인하여 조건이 맞을 경우 계속해서 수행하는 것이다.

while (condition) {
  // code block to be executed
}

let i = 0;

while (i < 5) {        
  console.log(i);
  i++;
}
x = 0
i = 0

do {
  x = x + i;
  console.log(x)
  i++;
} while (i < 5);

// Prints: 0 1 3 6 10

break; 키워드를 통해 즉시 반복문에서 나올 수 있다.

 

4. Iterators

자바스크립트에서는, 함수 또한 데이터타입의 종류로, 자유롭게 변수에 선언이 가능하다.

 

Array.map.forEach() 메소드는 배열 내의 요소에 대해 반복해서 특정 함수를 수행한다.

const numbers = [28, 77, 45, 99, 27];

numbers.forEach(number => {  
  console.log(number);
}); 

Array.filter() 메소드는 배열 내에 특정 조건을 만족하는 요소들만 추출하여 새로운 배열을 리턴한다.

const randomNumbers = [4, 11, 42, 14, 39];
const filteredArray = randomNumbers.filter(n => {  
  return n > 5;
});

Array.reduce() 메소드는 배열의 요소들을 반복해서 돌며 함수를 수행한 하나의 결과값을 리턴한다.

두 개의 인자 (accumulator, currentValue)로 이루어지는데, accumulator는 마지막 지시문을 이행하여 나온 결과값이고, currentValue는 현재 작업을 수행하려고 하는 요소를 지칭한다.

const arrayOfNumbers = [1, 2, 3, 4];

const sum = arrayOfNumbers.reduce((accumulator, currentValue) => {  
  return accumulator + currentValue;
});

console.log(sum); // 10

댓글