UMC 3주차 워크북
변수(Variable)
-
변수
: 데이터를 저장하는 상자const
: 변하지 않는 데이터 값 넣을 때 사용. 한 번 값을 할당하면 재할당 할 수 없다.let
: 데이터 값이 변할 때 사용.-
선언 : 변수를 정의하는 것
let str;
-
초기화 : 정의한 변수에 넣는 첫 번째 값
let str = '자바스크립트';
-
재할당 : 이미 값이 존재하는 변수에 다시 값을 넣는 것
let num = 3; num = 10;
자료형(Data type)
string
: 문자열number
: 숫자bigInt
: 큰 값의 숫자boolean
: true, falsesymbol
: 중복되지 않는 고유값null
: 비어있는 값. 수동적으로(의도적으로) 값이 없음을 나타낸다.undefined
: 비어있는 값. 자동적으로 값이 없음을 나타낸다.object
: 함수, 배열, 객체
연산자(Operator)
산술 연산자
: +, -, /, *, %, **, ++, —할당(대입) 연산자
: =문자열 연산자
: +, +=-
비교 연산자
: ==, ===(데이터 타입까지 비교), !=, !==, >, <, >=, <=1 == '1' // true 1 === '1' // false null != undefined // false null !== undefined // true
-
논리 연산자
:&&
: 조건 중 하나라도 false이면 false||
: 두 개의 조건이 모두 false여야 false!
: 반대(부정)
배열(Array)
-
배열
: 연관성 있는 값들의 리스트-
선언 및 초기화
// 1. [] const travel_spot = ['방콕', '뉴욕', '파리'];
// 2. new Array() const travel_spot = new Array('방콕', '뉴욕', '파리');
// 3. 빈 배열에 index 이용해서 하나씩 추가 const travel_spot = new Array(); travel_spot[0] = "방콕"; travel_spot[1] = "뉴욕"; travel_spot[2] = "파리";
-
접근
const paris = travel_spot[2]; console.log(paris); // "파리"
-
추가 및 삭제
-
push
: 뒤에 원소 추가travel_spot.push("토론토", "퀘백"); console.log(travel_spot); // ["방콕", "뉴욕", "파리", "토론토", "퀘백"]
-
unshift
: 앞에 원소 추가travel_spot.unshift("바르셀로나"); console.log(travel_spot); // ["바르셀로나", "방콕", "뉴욕", "파리", "토론토", "퀘백"]
-
splice
: 원하는 지접에 추가 및 삭제 (시작 index, 삭제하고 싶은 원소의 개수, 추가하고 싶은 원소들)travel_spot.splice(4, 0, "멜버른", "아테네"); console.log(travel_spot); // ["바르셀로나", "방콕", "뉴욕", "파리", "멜버른", "아테네", "토론토", "퀘백"] const result = travel_spot.splice(3, 3); console.log(travel_spot, result); // ['바르셀로나', '방콕', '뉴욕', '토론토', '퀘백'], ['파리', '멜버른', '아테네'] travel_spot.splice(1, 1, "이스탄불", "하노이"); console.log(travel_spot); // ['바르셀로나', '이스탄불', '하노이', '뉴욕', '토론토', '퀘백']
-
pop
: 뒤에서 원소 삭제const result1 = travel_spot.pop(); console.log(travel_spot, result1); // ['바르셀로나', '이스탄불', '하노이', '뉴욕', '토론토'], "퀘백"
-
shift
: 앞에서 원소 삭제const result2 = travel_spot.shift(); console.log(travel_spot, result2); // ['이스탄불', '하노이', '뉴욕', '토론토'], "바르셀로나"
-
-
객체(Object)
-
객체
: key - value 형태로 저장하는 값property
: 객체 내의 데이터method
: 객체 내의 함수
❗️key 값에 특수 문자나 공백이 있을 경우에는 문자열의 형태(””)로 작성해야 한다.-
생성
// 1. 객체 생성 const pooh = { name: "pooh", species: "bear", job: "disney character", gender: "boy", "say-Hi": function () { console.log("I'm winnie the pooh, What's your name?"); }, };
// 2. 빈 객체 생성 후 값 추가 const obj = new Object(); // 생성자 함수 console.log(obj); // {} obj.name = 'dwell'; obj.greeting = function() { console.log('hi'); }
// 3. 객체 생성(생성자 함수 사용) const obj = new Object({ name: "dwell", greeting: function () { console.log("hi"); }, });
-
접근
// 1. . console.log(pooh.species); // "bear" console.log(pooh.say-Hi); // 오류 -> 공백이나 특수문자가 들어갔을 때는 []로 접근해야 한다.
// 2. [] console.log(pooh['species']); console.log(pooh['say-Hi']()); // 함수 실행
-
추가 및 삭제
// property 추가 pooh.favorites = ["honey", "friends", "cake"];
// method 추가 pooh["say-Bye"] = function () { console.log("I'm winnie the pooh, See you later"); };
// 삭제 delete pooh.favorites;
-
생성자 함수
:틀
역할, 객체를 생성해주는 함수.
생성자 함수를 통해 만들어진 객체를인스턴스
라고 하는데, 각각의 인스턴스를 가리킬 때this
를 사용한다.function Character(name, species, job, gender) { this.name = name; this.species = species; this.job = job; this.gender = gender; this["say-Hi"] = function () { console.log(`I'm ${this.name}, What's your name?`); }; this["say-Bye"] = function () { console.log(`I'm ${this.name}, See you later`); }; }
-
인스턴스 생성
const winnie_the_pooh = new Character("winnie the pooh", "bear", "disney character", "boy"); const snoopy = new Character("snoopy", "dog", "comic book character", "boy"); const pikachu = new Character("pikachu", "squirrel", "pokemon character", "boy");
-
메서드 호출
console.log(winnie_the_pooh["say-Hi"]()); // "I'm winnie the pooh, What's your name?" console.log(snoopy["say-Bye"]()); // "I'm snoopy, See you later" console.log(pikachu["say-Bye"]()); // "I'm pikachu , See you later"
함수(Function)
-
함수
: input 값(인자)이 어떤 function(기능)을 거쳐 output(반환값)으로 출력된다.컨벤션
: 이름만 보고 함수에서 수행되는 기능을 알 수 있도록 이름을 지정하는 규칙-
선언
function multiply10 (num) { const result = num * 10; return result; }
-
호출
const data = multiply10(10); console.log(data); // 100
-
화살표 함수
: 불필요한 것을 생략하여 간단하게 작성할 수 있다.const multiply10 = (num) => num * 10; const multiply10 = num => num * 10; // 인자가 하나일 때는 괄호 생략 가능 const data = multiply10(100); console.log(data); // 1000
조건문
-
if문
: 조건이 참일 때 if문 내의 코드가 실행되는 조건문-
false로 판별되는 값 : 0, -0, null, false, NaN, undefined, ‘’
→ 이외의 값은 모두 true이다.if ( age > 19 ) { console.log('술을 마실 수 있다'); }
-
else if
: 조건이 여러 개일 때 else if를 중첩해서 사용할 수 있다. 조건 중에 하나라도 만족하면 코드를 실행하고 조건문을 종료한다.if(age >= 70) { console.log('노인'); } else if (age >= 60) { console.log('60대'); } else if (age >= 50) { console.log('50대'); } else if (age >= 40) { console.log('40대'); } else if (age >= 30) { console.log('30대'); } else if (age >= 20) { console.log('20대'); } else if (age >= 10) { console.log('10대'); } else { console.log('애기'); }
-
-
삼항 연산자
: 조건 ? 참일때 실행될 코드 : 거짓일때 실행될 코드const result = age > 19 ? '술을 마실 수 있다': '미성년자';
-
switch문
: 대상이 되는 변수 값을 case로 작성하여 해당되는 코드를 실행한다. case 값은 조건문이 아닌 단일 ‘값’이어야 한다. 조건 중에 만족하는 case부터 끝까지 코드를 실행하며, 이것을 방지하기 위해 break 를 사용한다.switch (age) { case 70: console.log("70대"); break; case 60: console.log("60대"); break; case 50: console.log("50대"); break; case 40: console.log("40대"); break; case 30: console.log("30대"); break; case 20: console.log("20대"); break; case 10: console.log("10대"); break; default: console.log("애기"); }
반복문
-
for문
: for ( 초기값 ; 종료조건 ; 증감) { 실행할 코드 }const numArr = [45, 32, 11, 98, 22]; for(let i = 0; i < numArr.length ; i++) { numArr[i] += 10; } console.log(numArr); // [55, 42, 21, 108, 32]
-
while문
: while (조건) { 코드; 증감; }const numArr = [45, 32, 11, 98, 22]; let i = 0; while(i < numArr.length) { numArr[i] += 10; i++; } console.log(numArr); // [55, 42, 21, 108, 32]
-
break
&continue
let i = 1; while(true) { if(i > 10) { break; // i가 10을 초과하면 반복문을 멈춘다. } i++; if(i%2 !== 0) { continue; // i가 홀수이면 뒤아래 코드를 실행하지 않고 다음 반복문으로 넘어간다. } console.log(i) // 2 4 6 8 10 }
-
-
do while문
: do { 실행할 코드 } while (조건)
조건과 상관 없이 코드가 한 번 실행되고 나서, 조건을 확인한 후 true일 경우 반복한다. 한 번이라도 코드를 실행해야 할 때 사용한다.let i = 12; do { console.log(i); // 12 i++; } while (i < 11);