JavaScript DAY2

ITselfhiam
|2023. 10. 21. 23:04

1. 연산자(Operator)

1. 산술 연산자
    +, -, *, /, %, **

2. 비교 연산자
    >, <, >=, <=, ==, !=, ===, !==
    === : 두식의 값이 같고, 타입까지 같아야 함
    !== : 두식의 값이 다르고, 타입까지 달라야 함

    ex) 
    3 == 3 -> true
    '3' == 3 -> true // 값은 3으로 같으니 true
    '3' === 3 -> false // 타입이 달라서 false

3. 대입 연산자
    =, +, -=, *=, /=, %=, **=

4. 증감 연산자
    ++변수, --변수, 변수++, 변수--

    ex)
    let num = 10
    ++num  // 11 num = num + 1
    --num // 10 num = num - 1
    num++ // 11 num = num + 1
    num-- // 10 num = num - 1

    파이썬 ex)
        num += 1

    num = 10
    result = ++num // num = 1, result = 11
    result = num++ // result=11, num = 12

5. 논리 연산자
    and,    or,     not
    &&      ||       !

6. 비트 연산자
    &, |, !, ^, <<, >>

7. 삼항 연산자

    변수 = 조건식 ? 반환값1 : 반환값2
        조건식의 결과가 true일 때 반환갓1이 변수에 저장
        조건식의 결과가 false일 때 반환값2가 변수에 저장

 

제어문

1. 조건문
    if문
    switch문

2. 반복문
    while문
    for문

if문

    if(조건식){
        조건식의 결과가 true일 때 실행할 문장;
        ...
    }

if ~ else 문

    if(조건식){
        조건식의 결과가 true일 때 실행할 문장;
        ...
    } else {
        조건식의 결과가 false일 때 실행할 문장;
        ...
    }

if ~ else if ~ else 문

    if(조건식1){
        조건식1의 결과가 true일 때 실행할 문장;
        ...
    } else if(조건식2) {
        조건식2의 결과가 true일 때 실행할 문장;
        ...
    } else {
        모든 조건식의 결과가 false일 때 실행할 문장;
        ...
    }

 

switch문

switch문도 if문과 함게 조건문에 속하는 구문입니다. 하지만 if문에 들어가는 조건식처럼 모든 형태의 조건식이 들어갈 수 있는 것은 아닙니다.     

switch문에 조건으로 사용될 수 있는 연산자는 '==', 즉 두개의 피연산자의 값이 같을 때만 조건으로 활용할 수 있습니다. 따라서 하나의 변수 안에 저장되어 있는 값을 다수의 값과 비교해야 할 때 주로 사용합니다.

    ex)
        switch(변수 또는 값){
            case 값1 : 
                변수와 값1이 같은 경우 실행할 문장;
                ...
                break;

            case 값2 : 
                변수와 값2이 같은 경우 실행할 문장;
                ...
                break;

            case 값3 : 
                변수와 값3이 같은 경우 실행할 문장;
                ...
                break;

            case 값4 : 
                변수와 값4이 같은 경우 실행할 문장;
                ...
                break;

            default: 
                변수와 모든 값이 다른 경우 실행할 문장;
                ...
        }

 

while문

while(조건식){
        조건식의 결과가 true인 동안 반복할 문장;
        ...
    }

    do {
        조건식의 결과가 true인 동안 반복할 문장;
        ...
    } while(조건식);

    ✓ do ~ while문은 조건식의 결과가 처음부터 false인 경우라도 1번은 {}에 문장을 실행함

 

for문

for(초기값; 조건식; 증감식) {
        조건식의 결과가 true인 동안 반복할 문장;
        ...
    }

    let sum=0;
    for(i=1; i<=10; i++){
        sum += i;
    }

    ✓ for문의 무한루프
    for(;;){

    }

 

break문

switch문 또는 반복중인 루프 내에서 사용하여 해당 문장을 완전히 종료시키고 다음에 위치한 실행문으로 이동

    for(let i=0; i<10; i++){
        if(i == 5) break;
    }

 

continue문

반복중인 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고 다음 반복문의 판단으로 넘어감

    let num = 1;
    while(num <= 10){
        console.log(num); // 1
        num++;
        if(num == 5) continue;
        ...
        ...

    }

 

2. 배열(Array)

- 이름과 인덱스로 참조되는 정렬된 값의 집합(자료구조)
- 배열을 구성하는 각각의 값을 배열요소라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스라고 함

배열 선언
let 배열명;

배열 초기화
배열명 = [요소1, 요소2, 요소3, 요소4, ...];

ex)
let arr;
arr = [100, 200, 300];

배열을 함수로 생성하는 방법
const 배열명 = Array(요소1, 요소2, 요소3, 요소4, ...);

배열의 접근
let arr = [100, 200, 300];

console.log(arr[0]); //100
console.log(arr[1]); //200
console.log(arr[2]); //300

 

✓ 자바스크립트 배열의 특징

1. 배열 요소의 타입이 고정되어 있지 않음
    let arr = [1, 1.5, '김사과', true];

2. 배열 요소의 인덱스가 연속적이지 않아도 됨
    let arr;
    arr[0] = 1;
    arr[1] = 100;
    arr[4] = 10;
    (index 2, 3은 undefined)

 

Array 객체의 메서드(프러퍼티 메서드)

push() : 배열의 요소를 추가
pop() : 배열의 마지막 인덱스 번호에 있는 값을 제거
shift() : 배열의 첫번째 인덱스 번호에 있는 값을 제거
concat() : 두 배열을 합침
join() : 배열 요소 사이에 원하는 문자를 삽입
reverse() : 배열을 역순으로 재배치
sort() : 배열을 오름차순으로 정렬

 

배열을 이용한 반복

 

for in 문

변수에 배열의 인덱스 또는 객체의 key가 저장되며 반복

    const arr = [10, 20, 30];
    const user = {userid:'apple', name:'김사과', age:20};

    for(번수 in 배열 또는 객체){
        배열의 요소 개수 또는 객체의 프러퍼티 개수만큼 반복할 문장;
        ...
    }

    ex)
    for(let i in arr){ // 10, 20, 30이 들어가는것이 아닌 index 0, 1, 2가 들어간다.
        ... // i = 0, 1, 2
    }

    for(let i in user){ // userid, name, age가 들어간다.
        ... //i = userid, name, age
    }

 

for of 문

변수에 배열의 value 또는 객체의 value가 저장되며 반복

for(번수 of 배열 또는 객체){
        배열의 요소 개수 또는 객체의 프러퍼티 개수만큼 반복할 문장;
        ...
    }

    ex)
    for(let v of arr){ // 10, 20, 30
        ... // v = 10, 20, 30
    }

 

forEach 문

배열에서만 사용 가능하며, 요소의 개수만큼 반복

    // 변수2, 변수3은 생략 가능
    // 변수는 총 3개 까지만 들어간다.
    배열명.forEach(function(변수1, 변수2, 변수3){ 
        배열의 요소 개수만큼 반복할 문장;
        ...
    });

    ex) 
    arr.forEach(function(v, i, ar){
        ... // v = 10, 20, 30
        ... // i = 0, 1, 2
        ... // ar = [10, 20, 30], [10, 20, 30], [10, 20, 30]
    });

 

사용자 정의 함수(function)

- 하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록
- 필요할 때마다 호출하여 해당 작업을 반복하여 수행할 수 있음
- 코드를 재활용

 

1. 함수 선언식

function 함수명(매개변수1, 매개변수2 ...) {
        함수가 호출되었을 때 실행할 문장;
        ...
        return 값;
    }

    호출할때 
    함수명(값1, 값2, ...)

    리턴값을 원할때
    변수 = 함수명(값1, 값2, ...)

 

2. 함수 표현식

const 상수명 = function(매개변수1, 매개변수2, ...){
        함수가 호출되었을 때 실행할 문장;
        ...
        return 값;
    }

    변수 = 상수명(값1, 값2, ...);

 

◈ 함수 선언식 및 표현식의 차이점

1. 함수 선언식으로 만들면 인터프리터가 메모리에 우선으로 옮기는데 함수선언식으로 만든건 먼저 올라간다
표현식은 두번째에 올라가기 때문에 순서 차이가 있다

2. 표현식은 변수처럼 사용을 할 수 있기 때문에 상수에 담아 둔다.

3. 함수 뒤에 있는것을 사용하고 



디폴트 매개변수

- 매개변수의 값을 설정하는 것
- 매개변수의 값을 정하지 않으면 기본값을 변수에 저장

function 함수명(매개변수1=값1, 매개변수2=값2 ...) {
    함수가 호출되었을 때 실행할 문장;
    ...
    return 값;
    }
 
    변수 = 함수명();
    변수 = 함수명(값1, 값2, ...);



나머지 매개변수

생략 접두사(...)를 사용하여 특정 위치의 인수부터 마지막 인수까지 한번에 지정할 수 있음

    function 함수명(매개변수1, ... 매개변수2){
        함수가 호출되었을 때 실행할 문장;
        ...
        return 값;
    }
    매개변수1 <- 값1
    매개변수2 <- 값2 ~ 값5

    함수명(값1, 값2, 값3, 값4, 값5);

'Study > JavaScript' 카테고리의 다른 글

JavaScript Day6  (0) 2023.10.25
JavaScript Day5  (0) 2023.10.24
JavaScript DAY4  (0) 2023.10.22
JavaScript DAY3  (0) 2023.10.22
JavaScript DAY1  (1) 2023.10.21