상세 컨텐츠

본문 제목

[Node.js 1팀] 1장. JavaScript (Introductions ~ Objects)

25-26/Node.js 1

by a-rom 2025. 10. 3. 10:53

본문

728x90

 

1. Introduction

console

- 코드에서 사용할 수 있는 데이터와 동작의 집합인 객체이다.

- console.log()를 활용하여 콘솔에 값을 출력할 수 있다.

- ex.

console.log('Hello');
// 출력값 : Hello

 

주석

- // : 한 줄 주석. 한 줄을 주석으로 처리

- /* */ : 여러 줄 주석. 여러 줄을 주석으로 처리하며, /* 부터 */까지의 범위를 주석으로 처리

- ex. 

// 이건 한 줄 주석입니다.
/* 이
건
여
러
줄
주
석 */

 

데이터 유형

- 숫자

- BigInt

- 문자열

- Bool

- Null

- Undefined

- Symbol

- 객체

 

산술 연산자

- 더하기(+) : 문자열을 연결할 때에도 사용

- 빼기(-)

- 곱하기(*)

- 나누기(/)

- 나머지(%)

 

. 연산자

- 각 인스턴스의 속성에 접근할 수 있다.

- .length() : 문자열의 길이를 확인할 때 사용

- .toUpperCase() : 대문자로 반환

- .trim() : 앞뒤 공백 제거

- .startsWith() : 해당 문자열이 특정 문자로 시작하는지 확인(true/false 반환)

- Math.random() : 0~1 사이의 난수 제공(0~50 사이의 난수를 얻고 싶다면 '* 50'을 추가)

- Math.floor() : 소수를 입력받아 가장 가까운 정수로 반환

 

변수 생성

- 변수 생성 키워드 : var, let, const

  • var : variable의 줄임말
  • let : 나중에 값 재할당 가능, 값을 할당하지 않고 변수 선언 가능(이 경우 undefined로 초기화)
  • const : 값을 재할당할 수 없음

- 변수 이름 규칙

  • 숫자로 시작할 수 없음
  • 대소문자를 구분
  • 변수 이름은 키워드와 동일할 수 없음

 

typeof 연산자

- 변수 값의 데이터 유형을 확인할 때 사용한다.

- 오른쪽에 있는 값의 유형을 반환한다.

- ex. 

const fruit = 'apple';
console.log(typeof fruit);
// 출력값 : string

 

 

2. Conditionals

조건문

if문

  • if 뒤에는 소괄호()가 나오는데, 이 안에는 특정 조건이 들어간다.
  • 소괄호에 조건을 입력한 뒤, 실행 블록이 나오는데, 중괄호{}로 감싸준다.
  • 소괄호 안의 조건이 참이면, 중괄호 안의 명령어가 실행된다.
  • ex.
if (true) {
        console.log('True');
    }

 

- if...else문

  • if문 조건에 맞지 않는, 즉 false일 때 다른 실행을 명령하기 위해 else문 사용한다.
  • if문과 마찬가지로 중괄호{} 안에 실행 명령어가 들어간다.
  • else문은 if문과 짝을 이뤄야 한다.
  • else문을 통해 이진 결정에 대한 실행을 자동화할 수 있다.

- else if문

  • 여러 개의 조건을 추가할 때 사용한다.
  • 각 조건마다 다른 실행 가능하다.
  • 항상 if문 뒤에 온다.

- switch문

  • 특정 값에 따라 나눈 조건문이다
  • case 키워드를 이용해 각 값을 나눈다.
  • 만약 case의 어떤 값도 참이 아닌 경우, 마지막에 default를 실행한다.
  • ex. 
let athleteFinalPosition = 'first place';

switch (athleteFinalPosition) {
  case 'first place':
    console.log('You get the gold medal!');
    break;
  case 'second place' :
  console.log('You get the silver medal!');
  break;
  case 'third place' :
  console.log('You get the bronze medal!');
  break;
  default :
  console.log('No medal awarded.');
  break;
}

 

연산자

- 비교연산자

  • 조건문을 작성할 때 값을 비교하기 위해 사용하는 다양한 유형의 연산자이다.
  • 비교연산자 종류
    • 미만 : <
    • ~보다 큼 : >
    • 이하 : <=
    • 이상 : >=
    • ~와 같음 : ===
    • ~와 같지 않음 : !==
  • 문자열에도 비교 연산자 사용 가능하다
    • ex. 'apples' === 'oranges' --> false
  • 모든 비교 문장은 true 또는 false으로 구성된다.

- 논리연산자

  • bool 논리를 처리하는 연산자이다.
  • 논리연산자 종류
    • && : 그리고 연산자(and), 모든 조건이 다 참이어야 함
    • || : 또는 연산자(or), 둘 중에 하나만 참이어도 됨
    • ! : not 연산자, 조건의 반대 경우가 참
    • ex.
 if (stopLight === 'green' && pedestrians === 0) {
            console.log('Go!');
        } else {
            console.log('Stop');
        }

 

- 참과 거짓

  • 변수가 존재하는지 확인하고 싶을 때(특정 값과 비교할 필요가 없을 때) 사용한다.
  • ex.
let myVariable = 'I Exist!';

if (myVariable) {
	console.log(myVariable)
} else {
	console.log('The variable does not exist.')
}
// 값이 명시적으로 값은 아니더라도 bool이나 조건문에서 사용될 때 거짓이 아닌 값이 할당되었기 때문에 참으로 평가
let numberOfApples = 0;

if (numberOfApples){
	console.log('Let us eat apples!');
} else {
	console.log('No apples left!');
}
// 거짓을 나타내는 값인 '0'이 들어가 있기 때문에 거짓으로 평가

 

  • 거짓을 나타내는 표현들
    • 0
    • "", ''와 같은 빈 문자열
    • null(전혀 가치가 없는 경우)
    • undefined(선언된 변수에 값이 없는 경우)
    • NaN(Not a Number)

- 삼항 연산자

  • '조건 ? 참일 경우 실행문 : 거짓일 경우 실행문' 으로 구성된다.
  • ex.
const apple = 'red';
apple === 'purple' ? console.log('True') : console.log('False');
// False 출력

 

 

3. Functions

함수 선언

- function 키워드를 이용한다.

- 함수 이름 옆에는 소괄호가 붙는다.

- 중괄호{}를 이용해 함수의 본문 작성한다.

- ex.

function greetWorld() {
  console.log('Hello, World!');
}

 

- 매개변수 : 함수 호출 시 함수에 전달될 정보를 위한 자리 표시자로 사용

- 인수 : 함수가 호출될 때 함수에 전달되는 값

- ex.

function sayThanks(name) {
  console.log('Thank you for your purchase, ' + name + '! We appreciate your business.');
}

sayThanks('Cole');

 

- 매개변수에 초기값을 지정해주면 인수로 값이 전달되지 않아도 해당 값을 초기값으로 사용한다.

function makeShoppingList(item1 = 'milk', item2 = 'bread', item3 = 'eggs'){
  console.log(`Remember to buy ${item1}`);
  console.log(`Remember to buy ${item2}`);
  console.log(`Remember to buy ${item3}`);
}

 

- 함수에서 다시 값을 반환하기 위해서는 'return'을 사용한다.

- 함수 내에서 다른 함수를 사용할 수 있다.

function monitorCount(rows, columns) {
  return rows * columns;
}

function costOfMonitors(rows, columns) {
  return monitorCount(rows, columns) * 200;
}

const totalCost = costOfMonitors(5, 4);
console.log(totalCost);

 

함수 표현식

- 표현식 안에 함수를 정의한다.

- 함수 표현식에서는 함수 이름이 생략되는데, 이를 익명함수라고 한다.

const plantNeedsWater = function(day) {
  if (day === 'Wednesday') {
    return true;
  } else {
    return false;
  }
}

console.log(plantNeedsWater('Tuesday'));

 

화살표 함수

- () => 와 같이 뚱뚱한 화살표 표기법 사용한다.

- function 화살표 생략 가능하다.

- 매개변수가 하나인 경우에는 소괄호 생략 가능하다.

- 함수 본문이 한 문장으로만 구성된 경우 중괄호 생략 가능하다.

const plantNeedsWater = (day) => {
  if (day === 'Wednesday') {
    return true;
  } else {
    return false;
  }
};
const plantNeedsWater = day => day === 'Wednesday' ? true : false;

 


4. Scope (스코프)

변수가 프로그램 어디에서 접근 가능한지를 결정하는 범위이다.

선언 위치와 방식에 따라 달라진다.

 

Global Scope (전역 스코프)

- 프로그램 전체에서 접근 가능한 스코프이다.

const globalMessage = 'Hello, world!'; // 전역 변수 globalMessage

function sayHello() {
  console.log(globalMessage); // 어디서든 접근 가능
}
sayHello();
console.log(globalMessage); // 가능

 

Block Scope (블록 스코프)

- 블록 { } 안에서만 유효한 스코프이다.

function checkBlock() {
  if (true) {
    let blockScoped = 'Inside block’; // 지역 변수 blockScoped
    console.log(blockScoped); // 가능
}
  // console.log(blockScoped); // ❌ 접근 불가, 블록 밖이므로
}

 

Scope Pollution (스코프 오염)

- 전역 네임 스페이스에 변수가 너무 많거나, 이름이 겹치는 상황이다.

- 코드 관리가 어엽고, 버그 발생 가능성이 높아진다.

const data = 'something';
const data = 'something else'; // ❌ 같은 이름 재사용 -> 위험

 

 

5. Arrays (배열)

데이터 목록을 저장하는 자료구조이다.

여러 데이터를 한 번에 관리할 수 있다.

 

인덱스

- 각 항목은 인덱스를 가진다.

- 인덱스는 0부터 시작한다.

- 배열 이름[인덱스]

const fruits = ['apple', 'banana', 'cherry’];
console.log(fruits[0]); // apple

 

배열 항목 수정 및 배열 길이 확인 (.length)

fruits[1] = 'mango';
console.log(fruits); // ['apple', 'mango', 'cherry’]
console.log(fruits.length); // 3

 

배열 매서드

- .push() → 배열 끝에 요소 추가

- .slice() → 배열 일부 추출 
- .pop() → 배열 끝 요소 제거
- .shift() → 배열 첫 요소 제거

fruits.push('orange');
console.log(fruits); // ['apple', 'mango', 'cherry', 'orange’]

fruits.slice(1, 2);
console.log(fruits); // ['mango', 'cherry']

fruits.pop();
console.log(fruits); // ['apple', 'mango', 'cherry’]

fruits.shift(); 
console.log(fruits); // ['mango', 'cherry']

 

함수 내에서의 배열 변경

- 함수 안에서 배열을 바꾸면, 함수 밖에서도 변경이 유지된다. (mutate)

function addNumber(arr) {
  arr.push(4);
}
const nums = [1, 2, 3];
addNumber(nums);
console.log(nums); // [1, 2, 3, 4]

 

중첩 배열

- 인덱스를 연쇄적으로 사용하여, 배열 안에 배열을 넣을 수 있다.

const nested = [[1, 2], [3, 4]];
console.log(nested[1][0]); // 3

 

 

6. Loop (반복문)

반복 작업의 자동화한다.

매번 코드를 쓰지 않고, 반복 수행 가능하다.

 

for 루프

- 기본 구조 for (초기값; 조건; 증감) { ... }

for (let i = 0; i < 5; i++) {
  console.log(i); // 0 1 2 3 4
}

 

중첩 for 루프

- 루프 안에 루프가 있는 구조이다.

const matrix = [[1,2], [3,4]];
for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    console.log(matrix[i][j]);
  }
}

 

while 루프

- 조건이 참인 동안 반복한다.

let x = 0;
while (x < 3) {
  console.log(x);
  x++;
}

 

do... while 루프

- 최소 한 번 실행 후, 조건 확인 후 반복한다.

let y = 0;
do {
  console.log(y);
  y++;
} while (y < 3);

 

break 키워드

- 루프 중간에 종료 가능하게 한다.

- 종료 조건이 없으면 프로그램 에러가 생길 수 있으니, 반드시 조건 or break 키워드 작성이 필요하다.

for (let i = 0; i < 5; i++) {
  if (i === 3) break;
  console.log(i); // 0 1 2
}

 


7. Iterator

Higher-Order Functions (고차 함수)

고차 함수(Higher-Order Functions)는 다른 함수를 인자로 받거나, 결과(return)로 반환할 수 있는 함수를 말한다. 즉, 함수를 마치 일반적인 숫자나 문자열처럼 데이터로 다룰 수 있다는 개념을 기반으로 한다.

const isTwoPlusTwo = checkThatTwoPlusTwoEqualsFourAMillionTimes = () => {
  for(let i = 1; i <= 1000000; i++) {
    if ( (2 + 2) != 4) {
      console.log('Something has gone very wrong :( ');
    }
  }
};

isTwoPlusTwo();
console.log(isTwoPlusTwo.name);
// Write your code below
  • checkThatTwoPlusTwoEqualsFourAMillionTimes라는 함수가 정의됩니다. 이 함수는 백만 번 반복하며 2 + 2가 4인지 확인하지만, 실제로는 아무것도 출력하지 않는다.
  • 이 함수가 **isTwoPlusTwo**라는 새로운 변수에 할당된다. 이 과정에서 함수는 데이터처럼 취급된다.
  • isTwoPlusTwo()를 호출하여 함수를 실행한다.
  • 마지막으로, isTwoPlusTwo.name을 출력하여 함수 변수가 참조하는 원래 함수의 이름이 무엇인지 확인한다. 출력 결과는 checkThatTwoPlusTwoEqualsFourAMillionTimes가 된다. 이는 변수가 함수 자체를 참조하고 있음을 보여준다.

 

Functions as Parameters (매개변수로서의 기능)

자바스크립트에서 함수는 일급 객체(First-Class Objects)이다. 이는 함수를 일반적인 데이터 타입(숫자, 문자열, 배열 등)과 동등하게 취급할 수 있다는 의미이며, 다음과 같은 세 가지 능력을 가진다.

 

  1. 변수에 저장할 수 있다.
  2. 다른 함수의 인자(매개변수)로 전달할 수 있다.
  3. 다른 함수의 반환 값을 사용할 수 있다.

 


 

예시

 

A. 함수 전달

console.log(checkConsistentOutput(addTwo, 5));
  • addTwo 뒤에 괄호 ()가 없다. 괄호가 있다면 함수를 실행해서 그 결과(값)를 전달하겠지만, 괄호가 없으므로 함수 정의 자체가 checkConsistentOutput 함수 내부로 전달된다.

 

B. 매개 변수로 받기

const checkConsistentOutput = (func, val) => {
    // ...
}
  • checkConsistentOutput 함수는 첫 번째 매개변수 이름을 func로 지정한다.
  • 이 func라는 변수는 이제 외부에서 전달받은 addTwo 함수를 참조하고 있다. 즉, func와 addTwo는 메모리에서 같은 함수를 가리킨다.

 

C. 콜백 함수의 실행 (Executing the Callback)

 

함수를 전달받은 후, checkConsistentOutput 함수는 자신이 원하는 시점에 그 함수를 실행한다. 전달받은 함수를 나중에 호출한다고 해서 이것을 콜백 함수(Callback Function)라고 부른다.

const checkB = func(val);

 

checkConsistentOutput는 addTwo의 내부 코드를 알 필요 없이, 단지 func(val)이라고 호출하는 것만으로 외부의 기능을 실행하고 그 결과를 얻을 수 있다.

 

Iterators

 

배열의 각 요소를 순회하며 특정 작업을 수행하는 메소드들을 총칭한다. forEach(), map(), filter(), findIndex(), reduce() 등이 있으며, 이들은 모두 고차 함수로 구현되어 코드의 간결성과 재사용성을 높여준다.

 


 

.forEach() : 배열의 각 요소에 대해 지정된 함수를 실행하며, 항상 반환 값이 없다.

data.forEach(n => console.log(n));

 

.map() : 각 요소를 변형한 값들로 새로운 배열을 만든다.

 
data.map(n => n * 2);

 

.filter() : 특정 조건을 만족하는 요소만 모아서 새로운 배열을 만든다.

data.filter(n => n > 25);

 

.find() : 조건을 만족하는 첫 번째 요소의 값을 찾으면 반환하고 즉시 멈춘다.

data.find(n => n === 30);

 

.findIndex() : 조건을 만족하는 첫 번째 요소의 인덱스(위치)를 반환한다.

data.findIndex(n => n === 10);

 

.reduce() : 모든 요소를 순회하며 하나의 최종 누적 값으로 계산하여 반환한다.

data.reduce((acc, n) => acc + n, 0);

 

 

8. Objects

Object Literals(객체 리터럴)

객체는 자바스크립트의 모든 데이터 타입과 마찬가지로 변수에 할당하여 사용할 수 있다.

let spaceship = {
  'Fuel Type': 'diesel',
  color: 'silver'      
};

- 객체 리터럴을 만들 때는 {}를 사용한다.

- 객체는 키(Key)와 값(Value)의 쌍으로 이루어진 데이터를 담습니다. 이 쌍을 속성(Property)이라고 부른다.

- 키와 값은 콜론(:)으로 연결하고, 각 키의 값 쌍은 쉼표(,)로 구분한다.

 

 

 

 

Methods(메소드)

객체 메소드는 객체에 저장된 데이터가 함수일 때 이를 부르는 용어이다. 속성(Property)이 객체가 가지는 것(데이터)이라면, 메소드(Method)는 객체가 할 수 있는 것(동작)이다. 메소드는 객체가 수행하는 동작이나 행동을 정의하는 함수이다. console과 math는 우리가 이미 사용해 본 메소드이다. 키는 메소드의 이름이 되고, 값은 함수가 된다.

const alienShip = {
  invade: function () {
    console.log('Hello! We have come to dominate your planet.');
  }
};

 

The this Keyword

객체는 서로 관련된 데이터(속성)와 기능(메소드)을 모아 놓은 컬렉션이다. 객체 내부의 메서드가 자기 자신(객체)의 다른 속성 데이터에 접근해야 할 때, 바로 this 키워드가 필요하다.

const goat = {
  dietType: 'herbivore',
  // ...
  diet() {
    console.log(this.dietType);
};
goat.diet();

- 'this'가 'goat' 객체를 참조하도록 지정함.

 

this는 "나를 호출한 객체"를 가리킨다. 메소드 안에서 같은 객체 내부의 다른 데이터나 메소드에 접근해야 할 때, this를 사용하면 객체 간의 관계를 명확하게 유지할 수 있다.

 

Setters(설정)

객체의 특정 속성 값이 설정되거나 변경될 때마다 특정 함수를 실행하도록 정의하는 접근 속성(Property)의 일종이다. set 키워드를 사용하여 정의하며, 외부에서 속성 값에 값을 할당하는 것처럼 보이지만 실제로는 지정된 함수가 실행되어 값을 처리하고, 이 함수는 새로 설정될 값을 매개변수로 받아 내부 로직을 수행한다. 이를 통해 속성 값의 유효성 검사나 관련 속성 업데이트 등 복잡한 작업을 속성 할당 시 자동으로 수행할 수 있다.

const language = {
  set current(name) {
    this.log.push(name);
  },
  log: [],
};

language.current = "EN";
language.current = "FA";

console.log(language.log);
// Expected output: Array ["EN", "FA"]

 

Getters(접근)

객체의 특정 속성(Property)에 접근할 때 자동으로 호출되어 해당 속성의 값을 계산하거나 반환하는 함수이다. get 키워드를 사용하여 정의하며, 겉으로는 일반적인 속성(Property)처럼 보이지만, 실제로는 함수를 실행하여 값을 얻는 접근 속성의 한 종류이다. 이를 통해 객체 내부의 변수를 외부에 직접 노출하지 않고 (데이터 캡슐화), 여러 내부 데이터에 기반하여 동적으로 계산된 값을 제공할 수 있게 된다.

const language = {
  set current(name) {
    this.log.push(name);
  },
  log: [],
};

language.current = "EN";
language.current = "FA";

console.log(language.log);
// Expected output: Array ["EN", "FA"]

 


Quiz

1. 한 줄 주석은 (      ), 여러 줄 주석은 (      )로 표현한다. 

2. Math 객체의 (               ) 메서드는 0~1 사이의 난수를 반환한다. 

3. switch 조건문에서 모든 case의 값 중 참이 없을 경우, (          )문을 실행한다. 

4. 함수가 호출될 때 함수에 전달되는 값을 (           )라고 한다. 

5. 이름이 없는 함수를 (              )라고 한다. 

 

6. 스코프는 (  ) 위치에 따라 달라진다
7. 배열의 각 항목은 (  )를 가진다
8. 변수를 const로 선언하면 배열 내부 값은 변경 가능하지만, (  )은 불가능하다
9. 반복문을 만드는 방법으로는 (  )루프, (  )루프, (  )루프를 사용하는 것이 있다
10. 반복문을 중간에 멈추게 하기 위해서는 (  )를 사용하면 된다

 

11. (         )는 다른 함수를 인자로 받거나, 결과로 반환할 수 있는 함수를 말합니다. 즉, 함수를 마치 일반적인 숫자나 문자열처럼 데이터 다룰 수 있다는 개념을 기반으로 합니다.

12. 배열의 반복 메서드 중 (           )는 배열의 각 요소에 대해 지정된 함수를 실행하지만, 반환 값은 항상 undefined 입니다.

13. 객체 내부의 메서드에서 사용되는 (          )는 해당 메서드를 호출한 객체를 참조합니다. 이를 통해 객체는 자기 자신의 속성에 명확하게 접근할 수 있습니다.

14. 객체에 저장된 데이터가 단순히 값일 때 우리는 이를 속성(Property)라고 부르며, 데이터가 함수일 때 객체가 할 수 있는 동작/기능의 의미로 (          )라고 부릅니다.

15. (           )는 내부 변수에 직접 접근하는 것을 막고, 계산을 통해 값을 제공하여 데이터를 보호합니다.

 

 

 

Programming Quiz

1. const를 이용하여 변수 age를 선언하고, 값으로 자신의 나이를 할당한 뒤 age가 20보다 크거나 같을 경우 콘솔에 '성인입니다.' 라고 출력하는 조건문을 작성하세요.

 

2. const를 이용하여 변수 fruit를 선언하고 임의의 값을 할당한 뒤, 해당 변수의 유형이 string이면 콘솔로 'String'을 출력하고 아닐 경우 콘솔로 'Incorrect value'를 출력하는 삼항연산자를 작성하세요.

 

3. 반복문을 이용하여 Fruit에 addFruit의 요소를 더해, 콘솔에 출력하시오

const Fruit = ['Apple', 'Banana', 'Cherry'];

function addFruit() {
  let addFruit = ['Mango', 'Grapes'];
  
  // 채우기

  }
}

// 채우기

 

4. 시험 결과를 새로운 배열 results에 저장하고, 콘솔에 출력하시오

( 시험 점수 60점 이상 : "Pass“ /  60점 미만 : "Fail" )

const scores = [85, 42, 73, 56, 91];
const results = [];

for (let i = 0; i < scores.length; i++) {

  // 채우기
  
}
console.log(results);

 

5. scores 배열의 모든 점수를 10점씩 올려 가산점을 적용한 새로운 배열 bonusScores를 만들고 싶습니다. [     ]를 채워 코드를 완성해 봅시다.

const scores = [85, 92, 77, 95];

const bonusScores = scores.[     ]score => score + 10); 
// 예상 결과: [95, 102, 87, 105]

 

6. 이번엔 scores 배열의 모든 점수를 합산하여 총점을 계산하고 싶습니다.  [     ]를 채워 코드를 완성해 봅시다.

const scores = [85, 92, 77, 95];

const totalScore = scores.[      ]((acc, score) => acc + score, 0); 
// 예상 결과: 349

 

 

 

Answer

<빈칸 문제>

더보기

1. //, /* */

2. random()

3. default

4. 인수

5. 익명함수

 

6. 선언

7. 인덱

8. 변수 자체를 다른 배열로 재할당

9. for, while, do... while

10. break

 

11. Higher-Order Functions(고차 함수)

12. .forEach()

13. this 키워드
14. Method(메소드)

15. Getter

 

<프로그래밍 문제>

1.

const age = 22;
if (age >= 20) {
	console.log('성인입니다.');
}

 

2.

const fruit = 'apple'; // 값은 임의로 할당
typeof fruit === 'string' ? console.log('String') : console.log('Incorrect value');

 

3.

const Fruit = ['Apple', 'Banana', 'Cherry'];

function addFruit() {
  let addFruit = ['Mango', 'Grapes'];

  for (let i = 0; i < addFruit.length; i++) {
    Fruit.push(addFruit[i]);
  }
}

addFruit();
console.log(Fruit);

 

4.

const scores = [85, 42, 73, 56, 91];
const results = [];

for (let i = 0; i < scores.length; i++) {
  if (scores[i] >= 60) {
    results.push("Pass");
  } else {
    results.push("Fail");
  }
}
console.log(results);

 

5. map

 

6. reduce


출처: 

codecademy Learn Javascript

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/set

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/get

Corner Node.js 1

Editor: Larva, Raccoon, Gyeomgyeom

 

728x90

관련글 더보기