Search
Duplicate
📜

자바스크립트의 변수는 어떻게 생겼을까?

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Javascript
Scrap
태그
javascript
9 more properties
자바스크립트는 인터프리터 언어다. 인터프리터는 개발자가 작성한 소스코드를 컴파일하는 과정 없이 바로 실행한다.
ㅇ 자바스크립트의 변수 선언
1.
var (ES6 이전)
재선언, 재할당 가능. 함수레벨 스코프, 변수 호이스팅 가능
2.
let (ES6 이후)
재선언 X, 재할당 가능. 블록레벨 스코프, 변수 호이스팅 불가능
3.
const (ES6 이후)
재선언 X, 재할당 X, 블록레벨 스코프, 변수 호이스팅 불가능
** 함수레벨 스코프 : 변수가 자신이 선언된 함수가 종료될 때 메모리에서 삭제
** 블록레벨 스코프 : 변수가 자신이 선언된 블록이 종료될 때 메모리에서 삭제
** 변수 호이스팅 : 변수를 선언하지 않고 값을 할당할 수 있다. var만 가능하다.
** 타입추론 : 변수에 할당된 값에 따라 변수의 타입이 변경되는 것
ㅇ 타입의 종류
1.
primitive type
을 가지는 타입(깊은 복사)
String / Number / Boolean / Null / Undefined
2.
reference type
주소를 가지는 타입(얕은 복사)
Object
** Null과 Undefined의 차이점
→ Null은 개발자가 명시적으로 해당 변수의 값이 없음을 나타내기 위해 할당하는 값이다. Undefined는 정의되지 않았으며 변수를 선언하고 초기화하지 않았을 때 자바스크립트 엔진이 할당하는 값이다.
→ Null은 의미없는 특별한 값이 등록되어 있는 값이며, Undefined는 초기화도 되어있지 않은 값이다.
→ typeof null은 Object
ㅇ 예제 코드 : type of
/////// typeof 알아보기 let name = 'eunson'; //String let age = 25; // Number let isLeave = false; //Boolean let nullVal = null; // Null let undefinedVal; //Undefined console.log(name+ " : " + typeof(name)); //결과 : String console.log(age+ " : " + typeof(age)); //결과 : number console.log(isLeave+ " : " + typeof(isLeave)); //결과 : Boolean console.log(nullVal+ " : " + typeof(nullVal)); //결과 : Object console.log(undefinedVal+ " : " + typeof(undefinedVal)); //결과 : undefined
JavaScript
복사
ㅇ 예제 코드 : Object
/////// 클래스 없이 객체 만들기 let me ={ name : 'eunson', //속성 age : 20, //속성 isLeave : false, //속성 toString : function(){ //메서드 return '이름 : ' + this.name + '/ 나이 :' + this.age; }//Object } console.log(me); //me의 속성과 메서드를 배열로 나타냄 console.log(me + '>>' + typeof(me)); //me의 toString 호출
C
복사