
둘다 '없음'을 나타낼때 사용하고는 합니다. 의미는 같을 수 있으나 사용하는 목적을 정확히해야 혼란을 줄일 수 있습니다. undefined undefined는 사용자가 명시적으로 지정할 수도 있지만, 값이 존재하지 않을때 자바스크립트 엔진이 자동으로 부여하는 경우도 있습니다. 1) 값을 대입하지 않은 변수(데이터 영역의 주솟값이 없는 식별자)에 접근할때나 2) 객체 내부에 존재하지 않는 프로퍼티에 접근하려고할때, 3) return 문이 없거나 호출되지 않는 함수의 실행결과에서 자바스크립트 엔진은 undefine를 반환합니다. 1) 값을 대입하지 않았을 경우 var name; console.log(name); // undefined 2) 객체 내부에 존재하지 않는 프로퍼티에 접근 var person = {..

데이터 타입의 종류 기본형 타입(Primitive Type) 참조형 타입(Reference Type) 숫자(Number) 문자열(String) 불리언(Boolean) null undefined 심볼(Symbol) 객체(Object) 배열(Array) 함수(Function) 날짜(Date) 정규표현식(RegExp) Map WeakMap Set WeakSet 기본형 타입(Primitive Type) 기본형 타입의 종류에는 숫자, 문자열, 불리언, null, undefined, symbol이 있습니다. 일반적으로 기본형은 '할당이나 연산시 데이터가 복제'된다고 알려져있습니다. 기본형 타입의 메모리 저장 방식 *메모리 할당영역, 주솟값에 대한것은 이해를 돕기위한 개략적인 이미지들이 등장합니다. 메모리 할당 시 ..

변수(Variable)와 식별자(Identifier) 들어가기 전에... 사람들은 변수(Variable)와 식별자(Identifier)를 혼용하는 경우가 많습니다. "내가 혼용했었나?"라고 의문이 들면서 이해가가지 않을 수도 있습니다. 혼용을 하면서도 인지하지 못하는 경우가 많기 때문인데, 첫번째로는, 대화의 문맥에 따라 혼용하더라도 상대방이 어떠한 말을 하는지 유추할 수 있기 때문이고 두번째로는, 애초에 혼용해서 사용해왔기때문에 그 차이를 이해하지 못하고 같은 의미로 사용하기때문입니다. "변수 name을 선언 안 한 것 같은데" 가 아닌, "식별자 name을 선언 안 한 것 같은데" 가 정확한 문장이라면 읭? 이러실 수도 있습니다. 제가 읭? 이랬거든요. 변수(Variable) 변수라는 이름은 '변할 ..
즉시 실행 함수 (IIFE, Immediately-Invoked Function Expression) 즉시 실행하여야하지만 전역 스코프(Global Scope)를 오염시키지 않으려고 할때 사용한다. 함수 리터럴을 ( )로 감싼 뒤 바로 실행하는 형태가 일반적이며 기명도 가능하고 익명도 가능하다. ( )로 감싸주는 이유는 자바스크립트는 function(){ } 키워드를 사용할 경우 파서가 선언문으로 인지한다. 선언문은 해석기에서 실행 후 사라지기에 값으로 존재하지 않는다. 때문에 "함수 표현식"을 통해 명시적으로 나타내줘야한다. ( )를 붙이는 것 외에도 연산자를 앞에 붙일 경우에도 즉시 실행된다. -function(a, b){ return console.log(a + b) })(1,2) // 3 // 즉..