*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 변수의 생명 주기 변수는 생성되고 소멸되는 생명 주기가 있다. 전역 변수의 생명 주기는 프로그램의 생명 주기와 같다. 즉, 프로그램이 끝날 때 전역 변수도 끝난다는 말이다. 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료되면 소멸된다. - 지역 변수의 생명주기는 함수의 생명주기와 같다. 그리고 다음의 예제를 보자 var x = 'global'; function foo() { console.log(x); // ?? var x = 'local'; } foo(); console.log(x); // global 여기서 foo 함수 내부에서 console.log(x) 를 실행하기 전에 지역변수 x가 이미 선언되었고 undefin..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 스코프란? 우리는 이를 함수에서 경험하였는데 함수의 매개변수는 함수 몸체 내부에서만 사용할 수 있고 외부에서는 사용할 수 없다. 따라서 함수 매개변수의 스코프는 함수 몸체로 제한된 것이다. 변수 이름을 비롯한 모든 식별자는 선언된 위치에 따라서 식별자를 참조할 수 있는 유효 범위가 결정되는데 이를 스코프라고 한다. 2. 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 영역 전역 스코프 전역 변수 지역 함수 몸체 내부 지역 스코프 지역 변수 전역 변수는 어디서든지 참조할 수 있다. 지역 변수는 자신의 지역 스코프와 하위 지역 스코프에서 유효하다. 3. 스코프 체인 함수는 중첩될 수 있으므로, 지역 스코프 또한 중첩될 수 있다. 따라..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 함수란? 프로그래밍에서 함수는 어떤 기능들을 코드 블록({})으로 감싸서 '하나의 실행 단위'로 정의한 것이다. 함수의 형태 매개 변수 : 함수 내부로 입력을 전달받는 변수 인수 : 입력 반환값 : 출력 함수는 값이다. 함수는 함수 정의를 통해 생성된다. 이런 정의에는 다양한 방법이 있다. // 함수 정의 function add(x, y) { return x + y; } 함수 호출 - 인수를 매개변수를 통해 함수에 넘겨주면서 함수의 실행을 지시하는 것 // 함수 호출 var result = add(2, 5); // 인수로 2와 5를 넘겨주면서 7을 반환함. console.log(result); 2. 함수 리터럴 함수 또한 객체 값이다. 따라서..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 원시 값과 객체는 크게 세 가지 측면에서 다르다. 원시 값은 변경 불가능한 값, 객체는 변경 가능한 값 원시 값을 변수에 할당하면 변수에는 실제 값이 저장됨, 객체를 변수에 할당하면 변수에는 참조 값이 저장됨 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됨 - 값에 의한 전달, 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달됨 - 참조에 의한 전달 1. 원시 값 우선 변수는 하나의 값을 저장하기 위해 확보된 메모리 공간 또는 메모리 공간을 식별하기 위해 붙인 이름, 값은 변수에 저장된 데이터이다. 변경 불가능한 것은 값에 대한 말이다. 따라서 변수는 언제든지 재할당을 통해서 변수 값을 바꿀..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 객체란? 원시 타입은 단 하나의 값만 나타냄 객체 타입은 다양한 값을 하나의 단위로 구성한 자료구조 원시 값은 변경 불가능한 값 객체는 변경 가능한 값 프로퍼티는 key와 value로 구성된다. 모든 값이 프로퍼티 value가 될 수 있는데 프로퍼티 value가 함수일 경우, method라고 부른다. 따라서 객체는 프로퍼티와 메서드로 구성된 집합체이다. 2. 객체 리터럴에 의한 객체 생성 다양한 객체 생성 방법이 지원된다. 객체 리터럴 - 가장 일반적이고 간단한 방법 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스 //객체 리터럴 생성법 var person = { name: 'lee', sayHello: funct..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 문의 끝에는 세미콜론을 붙이는게 일반적이지만, 블록문은 자체 종결성을 갖기 때문에 블록문 끝에는 세미콜론을 붙이지 않는다. //블록문 { var foo = 30; } 2. 조건문 조건문은 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. 조건식은 불리언(true, false)값으로 평가될 수 있는 표현식이다. 자바스크립트에는 if ... else와 switch 문으로 두 가지 조건문을 제공한다. if ... else 문 if (조건문1) { //조건문1의 식이 참이면 이 블록이 실행된다. } else if (조건문2) { //조건..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 자바스크립트는 7개의 데이터 타입을 제공하고 크게 원시 타입과 객체 타입으로 나뉜다. 구분 데이터 타입 설명 원시 타입 숫자 숫자. 정수와 실수 구분 X 문자열 문자열 불리언 true, false undefined var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 값이 없다는 걸 명시할 때 씀 심벌(symbol) ES6에서 추가됨 객체 타입 객체, 함수, 배열 등 1. 숫자 타입 var integer = 10; var double = 10.12; var negative = -20; var binary = 0b01000001; 추가적으로 세 가지 특별한 값도 있다. Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN..
*이 필기는 웹 프로그래밍 튜토리얼에서 보고 작성합니다. 1. 값 값은 표현식이 평가되어 생성된 결과를 말한다. 10 + 20; // 30 이 처럼 표현식이 평가되어 30이라는 결과를 만든다. 2. 리터럴 값은 다양한 방법으로 생성할 수 있지만, 기본적으로는 리터럴을 사용해서 만든다. 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. 리터럴은 사람이 이해할 수 있는 문자(아라비아 숫자, 알파벳, 한글 등) 또는 미리 약속된 기호('', "", ., [], {} 등)로 표기한 코드다. 3. 표현식 값을 만드는 또 다른 방법 표현식은 값으로 평가될 수 있는 문이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존 값을 참조한다. 리터럴도 값으로 평가되므로 리..