변수

장돌뱅이 ·2022년 1월 2일
0

JavaScript

목록 보기
4/46

변수(Variable)

  • 우리는 변수에 값을 붙이지 않고 변수를 선언할 수 있다.(var, let만 해당)
let price;
console.log(price); // Output: undefined
price = 350;
console.log(price); // Output: 350

변수이름 규칙

  1. 변수이름은 숫자로 시작하지 않는다. _, $, 문자로만 시작
  2. 대소문자를 구분한다.
    변수이름은 맨 앞의 첫글자는 소문자로 시작하고 뒤따라오는 단어는 대문자로 표기하여 한단어로 그룹화한다. (프로그래밍 언어에서 주로 사용되는 표기법, 카멜케이스)
  3. 변수이름과 변수 선언 키워드는 동일할 수 없다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#keywords 참조
  4. 상수나 축약어는 대문자로 작성하거나 스네이크케이스(언더바로 연결) 방식으로 작성

변수의 생성과정

변수의 생성과정은 세단계로 이루어진다.
1. 선언 단계
2. 초기화 단계(undefined를 할당해주는 단계)
3. 할당 단계

  • var
  1. 선언 및 초기화 단계(동시에 이루어진다)
  2. 할당 단계
  • let
  1. 선언 단계
  2. 초기화 단계
  3. 할당 단계

let은 선언되면서 호이스팅이 이루어지지만 초기화단계는 실제 코드에 도달했을 때 이루어진다.

  • const
  1. 선언 + 초기화 + 할당
var name;
name="mike";

let age;
age=30;

const gender;
gender="male" //Uncaught SyntaxError: Missing initializer in const declaration

호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것처럼 행동하는 것

1. var

자바스크립트 초창기 변수 선언 키워드.

  • 다른값이 변수에 재할당될 수 있다. 변수 중복선언이 가능하다.(대규모 프로젝트 진행시 위험할 수 있음) 그래서 별로 권장x
  • 함수 스코프 : 함수 내에서 선언되면 함수 바깥에서 사용할 수 없다.

// 아웃풋으로 10, 20이 나옴, 변수 중복선언이 가능하다

var myName = 'Arya';   
console.log(myName);
// Output: Arya

위 코드에서 변수선언자 var, 변수이름 myName, 변수값 Arya 이다.
'Arya' 는 변수이름 myName에 할당(assigned)된다. =(할당 연산자)
myName이라는 변수가 Arya라는 값으로 초기화되었다'라고도 말할 수 있다.

  • var는 선언하기 전에 사용할 수 있다. var로 선언한 모든 변수는 최상위로 끌어올려진 것처럼 동작하기 때문이다. 이를 호이스팅이라 한다.
var name;
console.log(name); // undefined
name = "mike" //할당

값이 undefined가 나오는 이유는 var 선언은 호이스팅 되지만 할당은 호이스팅 되지 않기 때문이다.

2. let

  • 다른값이 변수에 재할당될 수 있다.
    변수 중복선언이 불가능하다. 안정성있는 변수선언 키워드.
  • 블록 스코프 : 함수, if문, for문, while문, try/catch문 등 모든 블록 내에서 선언된 변수는 외부에서 접근할 수 없고 블록 안에서만 접근 가능하다.

3. const

  • 변수가 아닌 상수를 선언한다.
    선언 시 값이 할당되어야 한다.(오류시 SyntaxError)
    변수에 할당된 데이터가 변경되지 않는다.(오류시 TypeError)
    변수 중복선언이 불가능하다.
  • 블록 스코프

0개의 댓글

관련 채용 정보