Nomad Kim 2020. 10. 27. 17:42

Achievement Goals

  • 변수의 선언과 할당에 대해서 설명하고 코드로 작성할 수 있어야 한다.
  • 표현문이 값으로 변환되어서 변수에 할당되어 담기는 과정을 설명할 수 있어야 한다.
  • What is the meaning of 변수?
  • 데이터 보관함(메모리)
  • 보관함의 크기는 동일
  • 각 보관함의 이름 = 변수
  • 이름을 통해 데이터 사용(재활용)

변수란?

메모리에 공간을 할당받아 하나의 값을 저장할 때, 그 값을 찾아갈 수 있는 이름 혹은 그 공간 자체를 뜻한다.

변수에는 값, 표현식, 함수 등이 저장될 수 있다.

let age = 42;
age = '마흔두살

변수의 선언 3가지

var name = '김정은인민지도자?';
//변수선언과 값 초기화.

let name = '트럼프대통령';
//블록 범위(scope) 지역 변수 선언 및 값 초기화

const name = '문재인대통령';
//블록 범위 읽기 전용 상수 선언

var, let, const 의 차이점

1. var (변수 재선언 가능)

var variable = '최초변수선언'; 
console.log(variable); //최초변수선언
var variable = '변수재선언'; 
console.log(variable); //변수재선언

같은 이름의 변수가 남용될 수 있는 단점이 존재하여 이를 보완하기 위해 let, const 가 추가됨.

 

2. let(변수 재선언 불가능, 변수 재할당 가능)

let variable = '최초변수선언'; 
console.log(variable) //최초변수선언
variable = '변수재할당'; 
console.log(variable) //변수재할당 
let variable = '변수재선언'; 
console.log(variable) //변수재선언 -> 오류가 발생한다.

오류값: Uncaught SyntaxError: Identifier 'variable' has already been declared

3. const(변수 재선언 불가능, 변수 재할당 불가능)

const variable = '변수선언' 
console.log (variable); //변수선언 
variable = '변수 재할당' 
console.log (variable); //변수재할당 -> 불가능 
const variable = '변수 재선언' 
console.log (variable); //변수 재선언 -> 불가능​

변수 3종류 출처: https://ninearies.tistory.com/196?category=839103 [Express 999]


변수의 범위

전역변수: 특정 함수의 밖에서 변수를 선언하면 다른 코드(함수)에 이 변수가 사용될 수 있으므로 전역변수라 한다.

지역변수 : 특정 함수의 내부에 변수를 선언하는 경우, 해당 함수 내에서만 변수 사용이 가능하므로 지역변수라 한다.

 

자료형 변환이 가능하다.

데이터 형이 스크립트 실행 도중에 의해 자동으로 변환될 수 있는데 예를 들면,

var age = 35;
age = '마흔두살';

또한 문자열 +숫자 = 문자열 자료형 이라는 특징을 이용하여 다음이 가능하기도 하다.

let result = '나의 나이는 ' + 19 ;
console.log(result); //결과값 = 나의 나이는 19. 최종 자료형은 문자열이다.

할당과 참조

 

변수에 값을 저장: 할당(assignment) 저장한 값을 불러오기: 참조(reference)

초기값없이 var 또는 let 을 사용하여 선언된 변수는 undefined 값을 가지므로 이 변수에 접근할 시에 ReferenceError 예외 발생.

자바스크립트는 늘 변수를 선언할 때 변수의 값을 undefined로 초기화하는 과정을 거친다.


식별자

식별자란 자바스크립트에서 이름을 붙일 때 사용하는 단어로 변수명, 함수명 등이 있다.

식별자에는 그 값을 찾아갈 수 있는 메모리 주소값이 저장되어 있다.

식별자는 변수명 ,하나의 값을 구별할 수 있는 함수(***일급객체.값으로 평가될 수 있다.), 클래스이름이다.

 

***일급객체? 프로그래밍 언어 디자에서, 특정 언어의 first-class citizens이란 보통 다른 객체들에게 적용 가능한 연산을

모두 지원하는 객체를 말합니다. 이러한 연산에는 보통 매개변수로 전달, 함수에서 반환 및 수정되고, 변수에 할당되는 작업이 포함.

 

식별자 명명규칙

  • 키워드를 사용하면 안 된다.
  • 숫자로 시작하면 안 된다.
  • 특수 문자는 _와 $만 허용된다.
  • 공백 문자를 포함할 수 없다.
jayKim
jayKim88
_jayKim
$jayKim
JayKim
JAYKIM
// Usable 

break //Keyword
123jaykim
hereis space
// Unusable

식별자 관례

  • 모든 언어가 사용가능하지만 알파벳 사용이 관례
  • 의미 있는 단어 사용
  • 생성자 함수의 이름은 대문자로 시작
  • 변수와 인스턴스, 함수, 메소드 이름은 소문자로 시작
  • 식별자가 여러 단어로 이루어지면 각 단어의 첫 글자는 대문자

식별자 생성시, 표기 방법

  • 낙타표기법 (CamelCase)
    • 변수는 보통 소문자 낙타표기법을 사용하지만, 첫 번째 단어는 모두 소문자이고 나머지 단어는 대문자로 표기
    • ex) numCakeDonuts / englishNumber

식별자 출처: https://ninearies.tistory.com/194 [Express 999]

변수 호이스팅 이란??gmlwjd9405.github.io/2019/04/22/javascript-hoisting.html