표현식이 평가(evaluate)되어 계산된 결과평가 : 식을 해석해서 값을 생성하거나 참조하는 것모든 값은 데이터 타입을 가짐메모리에 2진수(bit)의 나열로 저장됨사람이 이해할 수 있는 문자나 약속된 기호를 사용해 값을 생성하는 표기법코드가 실행되는 시점에 리터럴을
하나의 값을 저장하기 위해 확보한 메모리 공간 자체그 메모리 공간을 식별하기 위해 붙인 이름값의 위치를 가리키는 상징적인 이름여러 개의 값을 저장하는 방법변수 이름 = 식별자어떤 값을 구별해서 식별할 수 있는 고유한 이름값이 아니라 메모리 주소를 기억함변수 선언을 위한
데이터 타입 데이터 타입이란? 값의 종류를 말하며, 자바스크립트의 모든 값은 타입을 갖는다. 크게 7개의 데이터 타입을 제공하며, 원시 타입(primitive type)과 객체 타입(object type)으로 나눌 수 있다. 데이터 타입의 종류에 따라 값을 생성한 목
하나 이상의 표현식(값으로 평가되는 문) 을 대상으로 여러 가지 연산을 수행하여 하나의 값을 만드는 것피연산자 : 연산의 대상피연산자를 대상으로 사칙연산을 수행해 새로운 숫자 값을 만듦산술 연산이 불가능하다면 NaN 반환이항 산술 연산자2개의 피연산자를 사용하여 숫자
조건에 따라 코드 블록을 (반복)실행할 때 사용block statement or compount statement일반적으로 제어문이나 함수를 정의할 때 사용JS는 블록문을 하나의 실행 단위로 취급블록문문 자체 종결성은 가지기때문에 세미콜론(;)을 붙이지 않음condit
명시적 타입 변환 or 타입 캐스팅: 개발자가 의도적으로 값의 타입을 변환하는 것암묵적 타입 변환 or 타입 강제 변환 : JS 엔진에 의해 암묵적으로 타입이 변환\+ 연산의 경우 피연산자 중 하나 이상이 문자열이라면 문자열 연결 연산자로 동작산술 연산자, 또는 비교
자바스크립트는 프로토타입 기반 객체 지향 언어다양한 객체 생성 방법 지원객체 리터럴Object 생성자 함수생성자 함수Object.create 메서드클래스(ES6)사람이 이해할 수 있는 문자 or 기호를 사용하여 값을 생성하는 표기법객체 리터럴은 값으로 평가되는 표현식이
✔️ 변경 불가능한 값✔️ 변수에 실제 값이 저장✔️ 원시 값이 복사되어 전달✔️ 변경 가능한 값(mutual value)✔️ 변수에 참조 값이 저장✔️ 참조 값이 복사되어 전달 -> 참조에 의한 전달
입력을 받아 출력을 내보내는 일련의 과정높은 재사용성유지보수의 편의성실수 ⬇️ 신뢰성 ⬆️가독성 ⬆️함수의 이름 생략 불가표현식이 아닌 문
식별자가 유효한 범위전역 스코프 : 어디서든 참조 가능지역 스코프 : 함수 몸체 내부 \- 자신의 지역 스코프와 하위 지역 스코프에서만 유효 함수의 중첩에 의해 계층적 구조를 가질 수 있음JS 엔진은 스코프 체인을 통해 상위 스코프 방향으로 이동하며 선언된 변수를
지역 변수 : 변수가 선언 된 스코프가 실행되었을 때 JS엔진에 의해 호출전여 변수 : 명시적 호출 없이 코드가 로드되자마자 호출코드의 결합(implicit coupling) : 코드의 어디서든 전역 변수를 참조하고 변경 가능긴 생명 주기 : 메모리 리소스를 오랜 기간
1\. 변수의 중복 선언 가능 : 동일한 이름의 변수가 선언 되어도 덮어쓸 수 있음2\. 함수 레벨 스코프 : 코드 블록 내에서 선언해도 무조건 전역 변수3\. 변수 호이스팅 var 키워드의 단점 보완을 위한 새로운 ES6 변수 선언 키워드변수 중복 선언 금지블록 레벨
프로퍼티의 상태를 나타내는 것프로퍼티를 생성할 때 JS 엔진이 자동으로 선언Object.getOwnPropertyDscriptor 메서드 사용하여 간접 확인Object.getOwnPropertyDscriptor를 통해 반환되는 객체value : 프로퍼티 키를 통해 접근
단 하나의 객체만 생성해야 함동일 프로퍼티를 갖는 여러 개의 객체를 생성해야 하는 경우 매번 같은 프로퍼티를 기술해야 하므로 비효율적JS엔진은 암묵적 처리를 통해 인스턴스 생성하고 반환암묵적으로 빈 객체 생성빈 객체 = 인스턴스는 this에 바인딩생성자 함수에 기술되어