목록javascript (48)
seunghyun Note
15.1 var 키워드로 선언한 변수의 문제점 변수 중복 선언 허용 var키워드로 선언한 변수는 중복 선언이 가능하다. var x = 1; var y = 1; // var 키워드로 선언된 변수는 같은 스코프 내에서 중복 선언을 허용한다. // 초기화문이 있는 변수 선언문은 자바스크립트 엔진에 의해 var 키워드가 없는 것처럼 동작한다. var x = 100; // 초기화문이 없는 변수 선언문은 무시된다. var y; console.log(x); // 100 console.log(y); // 1 var키워드로 x와 y변수가 중복 선언되었다. 중복 선언하면 초기화문 유무에 따라 다르게 동작한다. 초기화 문이 있는 경우 var키워드가 없는것 처럼 동작하고, 초기화 문이 있는경우 변수 선언문은 무시된다. 함수 ..
14.1 변수의 생명 주기 14.1.1 지역 변수의 생명 주기 변수는 생성되고 소멸되는 생명주기life cycle을 갖는다. 만약 생명주기가 없다면 프로그램이 종료되지 않는한 영원히 메모리 공간을 점유하게 된다. 전역 변수 선언문은 어디에 있든 상관없이 가장 먼저 실행된다. 반면 지역 변수(함수 내부의 변수)는 함수가 호출되면 다른 문들이 실행되기 이전에 선언문들이 실행되면서 변수가 생성된다. 그리고 함수가 종료되면 변수도 소멸되어 생명주기가 종료된다. 즉, 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. 보통 지역 변수의 생명 주기와 함수의 생명 주기는 일치하지만, 지역변수가 함수보다 오래 생존하는 경우도 있다. 아래와 같은 경우이다(클로저) function foo(){ var x = 10; f..
13.1 스코프란? 스코프는 식별자가 유효한 범위 식별자 자신이 선언된 위치에 의해 다른 코드가 자신을 참조할 수 있는 유효 범위 var var1 = 1; // 코드의 가장 바깥 영역에서 선언한 변수 if (true) { var var2 = 2; // 코드 블록 내에서 선언한 변수 if (true) { var var3 = 3; // 중첩된 코드 블록 내에서 선언한 변수 } } function foo() { var var4 = 4; // 함수 내에서 선언한 변수 function bar() { var var5 = 5; // 중첩된 함수 내에서 선언한 변수 } } console.log(var1); // 1 console.log(var2); // 2 console.log(var3); // 3 console.lo..
12.1 함수란 함수는 자바스크립트에서 가장 중요한 핵심 개념이다. 스코프, 실행 컨텍스트, 클로저, 생성자 함수에 의한 객체 생성, 메서드, this, 프로토타입, 모듈화등이 모두 함수와 깊은 관련이 있다. // f(x, y) = x + y function add(x, y) { return x + y; } // f(2, 5) = 7 add(2, 5); // 7 프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수는 아래 3가지로 이루어져 있다. 매개변수 parameter 인수 argument 반환값 return value 함수는 함수 정의function definition를 통해 생성한다. 12.2 함수를 사용하는 이유..
10.1 객체란? 자바스크립트는 객체 Object기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 “모든 것”이 객체이다. 원시 값을 제외한 나머지 값(함수, 배열, 정규표현식등)은 모두 객체이다. 원시 타입은 단 하나의 값만 나타내지만, 객체 타입은(object type / reference type)은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조data structure이다. -프로퍼티: 객체의 상태를 나타내는 값(data) -메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) 10.2 객체 리터럴에 의한 객체 생성 객체를 생성하는 방법 객체 리터럴 object 생성자 함수 생성자 함수 Object.create 메서드 클..
연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입 , 지수 연산 등을 수행해 하나의 값을 만든다. (연산의 대상을 피연산자) // 산술 연산자 5 * 4 // -> 20 // 문자열 연결 연산자 'My name is ' + 'Lee' // -> 'My name is Lee' // 할당 연산자 color = 'red' // -> ' red' // 비교 연산자 3 > 5 // -> false // 타입 연산자 typeof 'Hi' // -> string 7.1 산술 연산자 수학적 계산을 수행해 새로운 숫자 값을 만든다. NaN 반환한다. 7.1.1 이항 산술 연산자 이항 산술 연산자 의미 부수 효과 + 덧셈 X - 뺄셈 X * 곱셈 X / 나눗셈 X % 나머지 X 5 + 2; // -..