즐코

변수 선언 let, const / string 표현 본문

JavaScript

변수 선언 let, const / string 표현

YJLEE_KR 2022. 1. 3. 21:58

1. let/const 변수선언 복습

1-let

2-const

2. string (문자열) 표현 tip

 

1. let/const 변수선언 복습

변수 선언에 대해서 

변수명을 지정하면 변수를 저장하게끔 메모리에 저장공간을 확보해준다.  

 

1- let (added in ES6) 

변수를 계속 바꿔줄 수 있다. mutable data type 

메모리를 읽고 쓰는 게 가능함 (ex.워드나 엑셀에서 읽기쓰기 권한이 풀려있는 개념과 비슷하려나..?)

code block 개념
: 중괄호{} 안에 코드를 작성하면, 블럭 밖(중괄호 밖)에서는 블럭 안에 있는 코드 내용을 볼 수 없다. (주석같은효과?)
코드블럭 안에 있으면 코드 블럭 밖에 있는 변수명과 같은 변수명으로 중복되게 선언하여도
코드블럭은 개별적인 공간을 차지하는 개념이므로 오류가 나지 않는다. 

let name = 'yj'
{
let name = 'yjlee'
console.log(name)
}
console.log(name)​

같은 변수명이여도 중괄호 안에 있으면
중괄호 안 쪽 출력문 = yjlee 가 출력되고
중괄호 바깥 쪽 출력문 = yj가 동시에 출력됨

 

2- const

상수/ immutable data type을 선언해준다. 

변수가 절대 바뀌지 않는 고정값이다. 

메모리를 읽기만 가능함 (잠금된 pdf처럼 수정은 불가하고 읽기만 가능한 개념?)

 값을 선언함과 동시에 할당된 뒤로는 절대 값을 변경할 수 없다. 
const bloodtype = "typeB"
bloodtype = "typeAB"​

위와 같이 입력할 경우 error msg 뜬다. 
const로 선언할 경우 웬만하면 할당한 이후에 다시는 변경되지 않을 데이터 타입을 사용할 것..

 

*번외 - var*

오래전에 쓰던 변수 선언 방식이라 현재는 안 쓰는게 좋다.

이유를 찾아보니, 프로그래밍 언어에선 변수를 먼저 선언하고 나서 -> 값을 할당하는게 정상적이라고 하여,

ES6에 의하면 let 이나 const는 변수 선언 전에 값을 할당하면 오류가 뜬다. 

하지만 이전에 쓰던 var의 경우 변수 선언 전에도 값을 출력하면 값이 나오게 될뿐만 아니라, code block도 무시한다. 

이러한 문제를 var hoisting이라고 하는데, 어디에 선언했냐에 상관없이 항상 제일 위로 선언을 끌어올려 주는 것을 의미한다고 한다. 

 

 

2. string (문자열) 표현 tip

 

1. " ' ` 를 문자열 상에 나타내고 싶다면,
""문자열감싸기"" 가 아니라, `"문자열감싸기"` 처럼 같은 기호가 아닌 다른 기호로 감싸준다.

let enter = '"문자열감싸기"'
console.log(enter)​

출력 : "문자열감싸기"

 

2. enter 표현: \(backslash)n를 사이에 넣어주기
   tab 표현 : \(backslash)t를 사이에 넣어주기

let str = "abc\n\t엔터실행완료"
console.log(str)

 

출력 : abc
            엔터실행완료

 

3. template literals 
백틱 기호(`) 안에서 ${ }안에 변수를 넣으면 변수의 값이 자동적으로 붙어져서 나온다. 

이때, typeof 변수 는 변수의 데이터타입을 출력해준다.

const age = 17; // 정수 integer
const height = 159.8; // 소수 decimal
console.log(`value:${age}, type:${typeof age}`)
console.log(`value:${height}, type:${typeof height}`)​

 

출력 : value:17, type:number
출력 : value:159.8, type:number

참고로, Javascript는 정수와 소수 구분을 하지 않고, number로 일괄적으로 데이터타입을 나타낸다. 

 

* FYR..
javascript는 숫자라는 data type에 있어서 소수,양수,음수 등 세세하게 구분하지 않고 number 로 퉁쳐버리고,
굳이 number라는 data type을 선언하지 않아도 상관 없다.
반면에, c언어, java 같은 경우 low-level 의 언어여서, 즉 기계가 좀 더 이해하기 쉽게 작성된 프로그래밍 언어라 개발자들이 프로그래밍을 할 때 조금 더 세세하게 메모리 관리를 할 수 있는데, 소수, 정수 등 얼만큼의 사이즈의 데이터를 담냐에 따라서 변수를 할당해야하니 프로그램을 짜기 전에 미리 생각해야하는 부분이 있다고 한다..

Comments