221107 TIL

고먐미·2022년 11월 7일

자바스크립트

변수

let 과 const 의 차이

당신은 letconst의 차이점을 아는가?
둘 다 변수를 선언하는 키워드인것은 맞지만 어떨때에는 let, 어떨때에는 const를 쓴다.
이는 letconst의 값을 재할당하는 것 때문인데,
let 은 선언한 변수의 값을 다시 선언할 수 있다.(재할당이 가능하다.)
const는 선언한 변수의 값을 다시 선언할 수 없다.

그래서 변수의 값이 바뀔때에는 let을 사용하고, 바뀌면 안될때에는 const를 사용한다.



Data 타입

  • 숫자(Number)
    말 그대로 숫자 데이터이다.
    나이, 거리, 무게, 가격.. 등등 우리가 사용하는 숫자를 생각하면 된다.

  • 문자열(String)
    말 그대로 문자열 데이터이다.
    "쌍따옴표" 나 '홑따옴표' 안에 원하는 문자를 적으면 된다.

  • Boolean
    자바스크립트에서 참,거짓(True/False)을 나타내는 데이터이다.

  • Null , Undefined
    Null 은 텅 비어있는 값을 의미한다.
    Undefined 는 선언한 변수의 값이 할당되어 있지 않은 것을 의미한다.



연산자

문자열 붙이기

  • +를 사용해 문자열을 붙일 수 있다.
    참고로 문자열과 숫자를 이어붙이면 숫자가 문자로 인식된다 (주의할것)

  • 템플릿 리터럴 (Template literals)
    백틱 (`) 을 사용해 문자열 데이터를 표현할 수 있다.
    쌍따옴표나 홑따옴표로 문자열을 표현할 때보다 간결하게 문자열 붙이기가 가능하다.

const shoesPrice = 200000
console.log(`이 신발의 가격은 ${shoesPrice}원입니다`) 

산술연산자

  • 숫자 데이터에 대한 여러 연산이 가능하다.
    사칙연산 뿐 아니라 //를 통해 나머지 연산, **로 거듭제곱도 가능하다.

증감연산자

  • 자기 자신의 값을 증가시키거나 감소시키는 연산자이며, ++--로 사용한다. (1씩증가, 1씩감소 인듯하다)
    이 증감연산자는 {변수 앞, 변수 뒤} 중 선택해 놓을 수 있는데 이는 코드를 통해 좀 더 설명하도록 하겠다.
let count = 1
const pre = ++count

count1로 선언하고, pre++count로 선언했다.
이 상태에서는countpre의 값을 찍어보면 둘 다 2가 나온다.
count1인 상태에서 pre에 들어갔고, 들어가기 전에 증감연산자로 count값이 2가 되었기 때문이다.

이번엔 다른 경우를 알아보자

let count = 1
const post = count++

count1로 선언하고, postcount++로 선언했다.
이 상태에서는 countpost의 값을 찍어보면 각각 2,1이 나온다.
count1인 상태에서 post에 들어갔고, 그 후에 count 값이 2가 되었기 때문이다.

대입연산자

  • 위에서 변수를 어떤 값으로 선언할 때에 변수 = 값 으로 선언했는데, 이 때 쓰는 것이 대입연산자이다.
    = 뿐만아니라 +=, -=와 같은 것들을 통해 연산과 대입을 한번에 할 수 있다.

비교연산자

  • 말 그대로 숫자값을 비교하는 연산자이다. 그리고 이러한 비교연산자를 통해 얻는 값이 바로 boolean이다. (true, false)

논리연산자

  • || or, && and, ! not과 같은 연산자를 뜻한다.
    조건문에서 많이 쓰인다.
    || 는 연산 대상 중 하나만 true 여도 true 리턴
    && 는 연산 대상이 모두 true 여야만 true 리턴
    ! 는 true를 false로, flase를 true로 바꿔서 리턴

일치연산자

  • 두 값이 일치하는지 비교한다. 값1 === 값2
    ==을 쓰기도 하는데 이 차이점은 아래 코드에서 확인해보자
console.log(1==="1")
console.log(1=="1")

이 코드에서 ===을 사용한 코드는 flase를 출력한다.
숫자 1과 문자열 1은 다르기 때문

하지만 ==을 사용한 코드는 true를 출력한다.
숫자 1을 자동으로 문자열로 인식해 문자열 1과 문자열 1은 같기 때문



클래스와 객체

객체(Object) 타입

  • 자신만의 속성을 가지고 있고, 다른 것과 식별이 가능한 것 이라고 생각하면 편하다.

클래스(class) 선언

class Notebook {
	constructor(name, price, company) {
		this.name = name
		this.price = price
		this.company = company
	}
}

Notebook이라는 이름으로 class를 선언했다.
내용으로는 constructorname, price, company를 생성했고,
이 객체의 name, price, company를 각 name, price, company에 넣어줬다.

const notebook1 = new Notebook('MacBook', 2000000, 'Apple')

그 후, notebook1 이라는 변수에 Notebook에서 생성한 매개변수의 값을 MacBook, 2000000, Apple로 할당했다.

profile
개념을 이해하고 다른사람에게도 알려줄 수 있는 개발자가 되고 싶어요..

1개의 댓글

comment-user-thumbnail
2022년 11월 8일

정리 깔끔하게 잘해주셨네요
공부하실때 느끼셨던 감정들도 같이 적어주시면 추후에 다시 보실때 더 재밌으실거에요! ㅎㅎ

답글 달기