일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조와알고리즘
- 크라코
- Typescript
- 프로그래머스
- 자바스크립트
- Android
- 배열
- 파스에러
- react-native
- 타입스크립트
- js
- 리액트쿼리
- slice
- javascript
- 코드숨
- 유니온타입
- 리액트네이티브
- Flipper
- ios
- react-native-vision-camera
- reactnative
- 리액트
- React
- craco
- react-hook-form
- react-native-image-picker
- 제네릭타입
- sort( )
- react-native-camera-roll
- 모던자바스크립트
- Today
- Total
KassyLog
[모던 자바스크립트]'변수' 알아보기! 본문
# 변수
변수는 '하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해붙인 이름'을 말한다.
쉽게 말해 값의 위치를 가리키는 상징적인 이름!
변수 이름은 사람이 이해할 수 있는 언어로 그 이름을 통해 변수에 저장된 값의 의미를 명확히 할 수 있다.
코드는 컴퓨터에게 내리는 명령이지만 개발자를 위한 문서이다. 개발자의 의도를 나타내는 명확한 네이밍은 코드를 이해하기 쉽게 만들고,
이는 협업과 품질 향상에 도움을 주기때문이 심사숙고해서 지어야 한다.
변수이름을 식별자(어떤 값을 구별해서 식별할 수 있는 고유한 이름) 라고도 한다.
메모리 상에 존재하는 어떤 값을 식별할 수 있는 이름은 모두 식별자라고 부른다.
# 변수 선언
변수를 선언하려면 반드시 선언이 필요하다. 여기서 대망의 var, let, const 키워드를 사용한다.
ES6가 도입되기 전까지는 자바스크립트에서 유일하게 변수를 선언할 수 있는 키워드는 var 뿐이었다.
var 키워드의 단점 중 가장 대표적인 것
- 블록 레벨 스코프를 지원하지 않고 함수레벨 스코프를 지원한다는 것!
- 따라서 이로 인해 의도치 않게 전역 변수가 선언되어 심각한 부작용이 발생되기도 한다.
var 키워드를 사용한 변수 선언은 선언 단계와 초기화 단계가 동시에 진행된다.
var abc;
-> 선언과 초기화를 동시에 진행해서 undefined를 할당해서 초기화 됨
var 키워드로 선언한 변수는 어떠한 값을 할당하지 않아도 undefned라는 값을 갖는다!!!!
# 변수 선언의 실행 시점과 변수 호이스팅
자바스크립트 엔진은 변수 선언이 소스코드의 어디에 있든 상관없이 다른 코드보다 먼저 실행한다.
따라서 변수 선언이 소스코드의 어디에 위치하는지와 상관없이 어디서든지 변수를 참조할 수 있다.
console.log(score) //undefined
var score; //변수 선언문
의 경우 참조에러가 일어나지 않고 변수 선언이 소스코드가 순차적으로 실행되는 런타임 이전단계에서 먼저 실행된다는 증거가 된다.
이처럼 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라고 한다.
# 값의 재할당
var score = 80;
score = 90;
이처럼 var 키웓로 선언한 변수는 값을 재할당할 수 있다. 재할당은 현재 변수에 저장된 값을 버리고 새로운 값을 저장한다.
var 키워드로 선언한 변수는 선언과 동시에 undefined로 초기화 되기 때문이다!
만약 값을 재할당할 수 없다면? 저장된 값을 변경할 수 없다면? 그건 변수가 아니라 상수다!
다시 말해 상수는 단 한 번만 할당할 수 있는 변수다 (const의 등장!)
# 식별자 네이밍 규칙
식별자는 다시 말해 어떤 값을 구별해낼 수 있는 고유한 이름을 말한다.
규칙1) 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어(_)ㅡ 달러기호($)를 포함할 수 있다.
규칙2) 숫자로 시작하는 것은 허용하지 않는다.
규칙3) 예약어는 식별자로 사용할 수 없다.
'javascript' 카테고리의 다른 글
[모던 자바스크립트]'제어문' 알아보기! (0) | 2022.12.11 |
---|---|
[모던 자바스크립트]'타입변환과 단축평가' 알아보기! (0) | 2022.12.11 |
[모던 자바스크립트]let, const 그리고 블록 레벨 스코프 (0) | 2022.11.27 |
[모던 자바스크립트]전역 변수의 문제점 (0) | 2022.11.27 |
[모던 자바스크립트]'표현식과 문' 알아보기! (0) | 2022.11.26 |