앱을 실행하게되면 앱마다 쓸수 있는 메모리가 할당되어진다.
메모리는 텅텅 비어져 있는 박스 같은것.
글로벌 변수는 앱이 실행 할때부터 끝날때까지 계속 메모리를 차지하고 있어서 가급적 안쓰는게 좋다.
프로그래밍에서는 변수를 선언하고 값을 할당해야하지만
var는 그렇지 않다. 값을 할당하고 변수를 선언할수도 있고, 값을 할당하기 전에도 undefined라는 값을 내뱉는다. (오류가아님) 변수가 선언되었다는 말이다.
또 block scope를 무시한다.
그리고 모든 object(배열,객체,함수)들
보안성 ok
스레드 안정성 : 앱을 실행하면 한가지 프로세스가 할당이 되고, 그 프로세스 안에서 스레드가 동시에 돌아간다. 그리고 이 스레드들이 동시에 값에 접근해서 변경할 수 있는데 위험함.
실수 방지
primitive(더이상 쪼개질수없는) single item : number, string, boolean, null, undefined, symbol
object : 싱글 아이템을 여러개 묶어서 하나의 박스로 관리할 수 있게 해둔다.
function (first-class function) : 함수도 다른 데이터 타입처럼 변수에 할당이 가능하고, 함수의 인자로 넣을수도 있고, 리턴 타입으로도 가능하다.
bigInt, NaN, Infinity 가 있다.
템플릿 리터럴 : 백택으로 변수의 값과 string값을 한번에 내보낼 수 있다.
false : 0, null, undefined, NaN, ‘’
true : false 외 모든것들
값이 아무것도 없음, undefined : 값 자체가 없음.
정말 고유한 식별자를 쓸때.
string으로
변수 선언시 타입을 선언하지 않아도 됨.
const 키워드로 정의 되어서 선언된 변수의 메모리가 변경되지 않고, 다른 오브젝트로 재할당을 할 수 없다.
그 안의 데이터는 변경 될 수 있다. (=재할당 가능)
우리가 접근할 수 있는 property(속성) <
함수는 동사형태로 정해야한다.