Javascript 기초 문법 배우기

Frel·2022년 4월 18일
0

내일 배움 캠프

목록 보기
4/35

강의를 보고난 후 복습 겸 자료를 가져와서 글을 정리하면서 한번 더 복습하는 시간을 가져봅니다.

- 변수 & 기본연산

- 변수 대입( a = 2 )의 의미: "오른쪽에 있는 것을 왼쪽에 넣는 것!"

(2를 a라는 변수에 넣는다)

- let으로 변수를 선언합니다.

    ```jsx
    let num = 20
    num = 'Bob'
    

// 변수는 값을 저장하는 박스예요.

// 한 번 선언했으면, 다시 선언하지 않고 값을 넣습니다.

- 사칙연산, 그리고 문자열 더하기가 기본적으로 가능합니다.

    ```jsx
    let a = 1
    let b = 2
    
    a+b // 3
    a/b // 0.5
    
    let first = 'Bob'
    let last = 'Lee'
    
    first+last // 'BobLee'
    
    first+' '+last // 'Bob Lee'
    
    first+a // Bob1 -> 문자+숫자를 하면, 숫자를 문자로 바꾼 뒤 수행합니다.
    ```
    

- 변수명은 아무렇게나?

    ```jsx
    let first_name = 'bob' // snake case라고 합니다.
    
    또는,
    
    let firstName = 'bob' // camel case라고 합니다. 회사마다 규칙이 있죠.
    
    과 같이, 쉽게 알아볼 수 있게 쓰는 게 중요합니다.
    다른 특수문자 또는 띄워쓰기는 불가능합니다!
    ```
    

- 리스트 & 딕셔너리

- 리스트: 순서를 지켜서 가지고 있는 형태입니다.

    ```jsx
    let a_list = []  // 리스트를 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let b_list = [1,2,'hey',3] // 로 선언 가능
    
    b_list[1] // 2 를 출력
    b_list[2] // 'hey'를 출력
    
    // 리스트에 요소 넣기
    b_list.push('헤이')
    b_list // [1, 2, "hey", 3, "헤이"] 를 출력
    
    // 리스트의 길이 구하기
    b_list.length // 5를 출력
    ```
    

- 딕셔너리: 키(key)-밸류(value) 값의 묶음

    ```jsx
    let a_dict = {}  // 딕셔너리 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let b_dict = {'name':'Bob','age':21} // 로 선언 가능
    b_dict['name'] // 'Bob'을 출력
    b_dict['age'] // 21을 출력
    
    b_dict['height'] = 180 // 딕셔너리에 키:밸류 넣기
    b_dict // {name: "Bob", age: 21, height: 180}을 출력
    ```
    

- 리스트와 딕셔너리의 조합

    ```jsx
    names = [{'name':'bob','age':20},{'name':'carry','age':38}]
    
    // names[0]['name']의 값은? 'bob'
    // names[1]['name']의 값은? 'carry'
    
    new_name = {'name':'john','age':7}
    names.push(new_name)
    
    // names의 값은? [{'name':'bob','age':20},{'name':'carry','age':38},{'name':'john','age':7}]
    // names[2]['name']의 값은? 'john'
    

- 왜 필요할까요?

    💡 **순서를 표시할 수 있고, 정보를 묶을 수 있습니다.**
    
    앞에서 언급한 <스파르타과일가게>가 정말 잘 되어서 전국에서 손님이 찾아오고 있습니다. 대기표를 작성하기 위해서 온 순서대로 이름,  휴대폰 번호를 적도록 하였는데요. 변수만을 사용한 모습은 다음과 같습니다.
    
    let customer_1_name = '김스파';
    let customer_1_phone = '010-1234-1234';
    let customer_2_name = '박르탄';
    let customer_2_phone = '010-4321-4321';
    ...(알아보기 힘듭니다.)
    
    👉딕셔너리를 활용한다면 다음과 같이 고객 별로 정보를 묶을 수 있습니다.
    let customer_1 = {'name': '김스파', 'phone': '010-1234-1234'};
    let customer_2 = {'name': '박르탄', 'phone': '010-4321-4321'};
    
    👉그리고 순서를 나타내기 위해 리스트를 사용하면, 이렇게나 깔끔해집니다.
    let customer = [
        {'name': '김스파', 'phone': '010-1234-1234'},
        {'name': '박르탄', 'phone': '010-4321-4321'}
    ]
    
    ✅보기에도 깔끔해지고, 다루기도 쉬워지고, 고객이 새로 한 명 더 오더라도 .push 함수를 이용해 간단하게 대응할 수 있습니다.
    

    

- 기본 함수들

- 사칙연산 외에도, 기본적으로 제공하는 여러 함수들이 존재합니다.
    

    👉 왠지 이건 있을 것 같은데?(예 - 특정 문자를 바꾸고 싶다 등) 싶으면 직접 만들지 말고 **구글에 먼저 찾아보세요!**
    
 
    
    ```jsx
    **예를 들면, '나눗셈의나머지'를 구하고 싶은 경우**
    
    let a = 20
    let b = 7
    
    a % b = 6
    ```
    
    ```jsx
    **또, 특정 문자로 문자열을 나누고 싶은 경우**
    
    let myemail = 'sparta@gmail.com'
    
    let result = myemail.split('@') // ['sparta','gmail.com']
    
    result[0] // sparta
    result[1] // gmail.com
    
    let result2 = result[1].split('.') // ['gmail','com']
    
    result2[0] // gmail -> 우리가 알고 싶었던 것!
    result2[1] // com
    
    myemail.split('@')[1].split('.')[0] // gmail -> 간단하게 쓸 수도 있다!
    ```
    

- 함수

- 기본 생김새
    
    ```jsx
    // 만들기
    function 함수이름(필요한 변수들) {
    	내릴 명령들을 순차적으로 작성
    }
    // 사용하기
    함수이름(필요한 변수들);
    ```
    
- 예시
    
    ```jsx
    // 두 숫자를 입력받으면 더한 결과를 돌려주는 함수
    function sum(num1, num2) {
    	console.log('숫자', num1, num2);
    	return num1 + num2;
    }
    
    sum(3, 5); // 8
    sum(4, -1); // 3
    ```
    

- 조건문

- 20 보다 작으면 작다고, 크면 크다고 알려주는 함수
    
    ```jsx
    function is_adult(age){
    	if(age > 20){
    		alert('성인이에요')
    	} else {
    		alert('청소년이에요')
    	}
    }
    
    is_adult(25)
    ```
    
- if, else if, else if, else if else
    
    ```jsx
    function is_adult(age){
    	if(age > 20){
    		alert('성인이에요')
    	} else if (age > 10) {
    		alert('청소년이에요')
    	} else {
    		alert('10살 이하!')
    	}
    }
    
    is_adult(12)
    ```

- 반복문

- 예를 들어 0부터 99까지 출력해야 하는 상황이라면!
    
    ```jsx
    console.log(0)
    console.log(1)
    console.log(2)
    console.log(3)
    console.log(4)
    console.log(5)
    ...
    console.log(99)
    
    // 이렇게 쓰기엔 무리가 있겠죠? 그래서, 반복문이라는 것이 존재합니다!
    ```
    
- 반복문을 이용하면 아래와 같이 단 세줄로, 출력할 수 있습니다.
profile
자기개발을 해서 발전하는 미래의 개발자

0개의 댓글