티스토리 뷰
목차
|
1. 변수 선언이란?
변수란 사전적으로 고정적이지 않은, 변하는 수를 말한다. 프로그래밍을 시작하게 되면 가장 처음에 익히게 되는 용어이다.
프로그래밍 언어로서의 변수는 어떤 문자나 숫자 등 정보를 저장하는 메모리상의 공간을 의미한다.
그러한 공간을 쓰기 위해서는 먼저 무엇을 담을 수 있는 자리를 만드는 1. 선언이라는 과정이 필요하며,
그 자리의 최초 값을 지정하는 2. 초기화가 진행되어야 한다.
이후 쓰임에 따라 값을 넣어주는 작업을 통해 계속 변하는 수로서 3. 저장된다.
JAVA와 C언어의 경우, 변수 선언 시 변수의 값에 맞는 자료형으로 선언을 해주어야만 한다.
String name;
int age;
1, 2, 3 과 같은 정수형을 담는 변수를 쓰고자한다면 int 나 long으로 값을 지정해야 하고
이 후 '이름'이나 '성별'과 같은 문자를 해당 변수에는 담을 수 없다.
자료형의 종류는 이 글의 끝에서 간단히 다뤄볼 테니 패스!
즉! 변수 선언이란
자료형(데이터 타입)과 함께 그 자릿값을 지정하는, 변수 사용의 첫 단계
2. JavaScript 변수 선언 방식 (3가지!)
JavaScript 의 변수 선언방식은 단 3개로 구분해 볼 수 있다.
위에서 언급했던 자바나 C언어와 달리 자료형을 가리지 않는 점이 특징이며 세 방식의 공통점!!
데이터 타입을 가리지 않고 받을 수 있는 자유로움이 있어 설계 시에 이 점을 고혀지 않을 경우,
걷잡을 수 없는 오류의 늪에 빠질 수 있다 하니 유의하자. (10 = "10".....???)
또한 호이스팅이 가능한 것도 특징이다. 호이스팅에 대한 설명은 밑으로!
<JS 변수 선언>
1) var
초기 JS 부터 존재했던 변수 선언방식으로, 재선언과 재할당이 가능하다.
이에 따라 유연하게 코드를 작성할 수 있는 장점이 있다.
2) let
ES6 이후에 const와 같이 도입된 선언 방식이다.
var에서 변수의 중복 선언(재선언)을 막았다. (시도하면 SyntaxError 발생)
3) const
재선언은 물론 재할당까지 막은 방식이다.
즉, 한번 할당된 값은 다른 값으로 덮을 수 없어 '상수'를 선언할 때 사용된다.
다만 원시값 변경이 불가능할 뿐 객체는 변경할 수 있으므로 '불변'을 의미하지는 않는다.
3. Hoisting ?!
호이스팅이란?
함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것!
함수의 코드를 실행하기 전에 함수 선언에 대한 메모리부터 할당하는데,
호이스팅 덕분에 자바스크립트에서는 함수 호출 코드를 선언보다 앞서 배치할 수 있다는 특징이 있다.
show();
let show = function(){
console.log("show 함수 실행!!")
}
단, 익명 함수에서는 쓸 수 없다.
자바스크립트에서 편의상 허용해주는 이런 특징이 도리어 가독성과 유지보수에 악영향을 줄 수도 있으므로 사용 시에는 주의해야 한다.
(추가) 변수명 작성 규칙
암묵적(강제!)인 룰이니 기억해두라구!
변수명 작성 규칙 |
첫 번째 글자는 문자이거나 $, _(UnderBar)이어야 하고 숫자로 시작할 수 없음. |
영어 대소문자를 구분 |
첫 시작은 영어 소문자로, 이후 단어의 첫 문자는 대문자로 표기 |
문자 길이 제한 없음 |
예약어는 사용할 수 없음 (if, for, new, null 등) |
한글로 선언할 수 없음 (JS와 달리 Java에서는 선언 가능하나 올바른 방법은 아님) |
(추가) 자료형?
변수 선언 시에 지정하는, 각 변수에 담을 수 있는 데이터 종류 = 자료형 !
자료형을 명시적으로 선언하지 않는 파이썬과 같은 언어도 있는데,
직접 선언하지 않았다고 해서 자료형이 없는 것은 아니고 '동적 타입 언어'로서 자료형을 지녔다는 점 알아두어야 함!
데이터 타입 (자료형)
자료형 | 키워드 | 크기 | 기본값 | 표현 범위 |
논리형 | boolean | 1bit | false | true / false |
문자형 | char | 2byte | \u0000 | 0 ~ 66,535 |
정수형 | byte | 1byte | 20 | -128 ~ 127 |
short | 2byte | 0 | -32,768 ~ 32,767 | |
int | 4byte | 0 | -2,147,483,648 ~ 2,147,483,647 |
|
long | 8byte | 0 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
|
실수형 | float | 4byte | 0.0 | -3.4E38 ~ 3.4E38 |
double | 8byte | 0.0 | -1.7E308 ~ 1.7E308 |
(끄적끄적) 수업 진행
1. 첫 실습?
2. JS 변수 선언의 특이성
자료형을 가리지 않아 한 배열에 여러 타입의 요소를 담을 수 있음. 실제 배열 공간을 넘어서는 주소값을 요구해도 오류가 나지 않음!
우선 순위에 따라 계산됨!
3. let을 이용한 딕셔너리(dictionary) 선언
딕셔너리 : Json 형태로 대응 관계를 나타내는 자료형!
4. java와 거의 유사한 사용
5. for in / for of 문
for in 문은 속성 이름을 통해 반복
for of 문은 속성 값을 통해 반복
6. C언어식 표현도 가능
'IT 끄적임 일지' 카테고리의 다른 글
[궁금드] IDE와 프레임워크(Framework) 차이 (0) | 2022.11.21 |
---|---|
[IT 기본] 요구사항 정의서 & 요구사항 명세서 (0) | 2022.11.17 |