Javascript/ECMAScript 2009 (ES5)
-
생성자와 new - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 8. 16:50
https://opentutorials.org] 객체 객체란 서로 연관된 변수와 함수를 그룹핑한 그릇. 객체 내의 변수를 프로퍼티(property), 함수를 메소드(method)라고 부른다. var person = { 'name' : 'egoing', // 프로퍼티 'introduce' : function(){ // 메소드 return 'My name is '+this.name; } } document.write(person.introduce()); 만약 다른 사람의 이름을 담을 객체가 필요하다면 객체의 정의를 반복해야 할 것이다. 객체의 구조를 재활용할 수 있는 방법이 필요하다. 이 때 사용하는 것이 생성자다. ※ 프로토타입 기반 프로그래밍(Prototype-based Programming) 객체지향 ..
-
객체지향 프로그래밍 - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 7. 16:58
[출처 : https://opentutorials.org] 객체 지향 프로그래밍(OOP) 객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다. 이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다 ※ 객체는 변수와 메소드를 그룹핑한 것이다. 문법과 설계 문법 첫 번째는 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다. 이러한 기능들은 if, for문처럼 문법적인 구성을 가지고 있다. 이 문법을 이해하고, 숙지해야 객체를 만들 수 있다. 설계 두 번째는 좋은 객체를 만드는 ..
-
함수의 호출 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 4. 22:38
[출처 : https://opentutorials.org] 함수호출 function func() {} func(); - 함수 func는 Function이라는 객체의 인스턴스다. 따라서 func는 객체 Function이 가지고 있는 메소드들을 상속하고 있다. function sum(arg1, arg2){ return arg1+arg2; } sum.apply(null, [1,2]) // 3; 'sum(1,2);' 코드와 같음 # apply - 첫번째 인자는 함수(sum)가 실행될 맥락이다. 두번째 인자는 배열의 담겨있는 원소가 함수(sum)의 인자로 순차적으로 대입 o1 = {val1:1, val2:2, val3:3} o2 = {v1:10, v2:50, v3:100, v4:25} function sum(){..
-
arguments - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 4. 21:10
[출처 : https://opentutorials.org] arguments : arguments는 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 일종의 배열이다. function sum(){ var i, _sum = 0; for(i = 0; i < arguments.length; i++){ document.write(i+':'+arguments[i]+', '); // 0:1, 1:2, 2:3, 3:4 _sum += arguments[i]; } return _sum; // 10 } document.write('result : ' + sum(1,2,3,4)); - 함수에는 arguments라는 변수에 담긴 숨겨진 유사 배열이 있으며, 이 배열에는 함수를 호출할 때 입력한 인자가 담겨있다. ..
-
클로저 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 3. 23:33
[출처 : https://opentutorials.org] 클로저 : 클로저(closure)는 내부함수가 외부함수의 맥락(context)에 접근할 수 있는 것을 가르킨다. # 내부함수에서 외부함수의 지역변수에 접근할 수 있는 것을 클로저라고 한다. // outer() 외부함수 function outer() { var title = "Coding Everybody" // inner() 내부함수 function inner() { // 내부함수는 외부함수의 지역변수에 접근할 수 있다. alert(title) // "Coding Everybody" } inner(); } outer() # 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. function oute..
-
값으로서의 함수와 콜백 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 3. 21:45
[출처 : https://opentutorials.org] 값으로서의 함수 JavaScript에서는 함수도 객체다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다는 점이다. 함수는 변수의 값이 될 수 있다. function a(){} // var a = function(){}; 과 동일 함수는 객체의 값으로 포함될 수 있다 a = { b : function() {} // 'b'는 속성(property), 'function(){}'은 메소드(method) } 함수는 값이기 때문에 다른 함수의 인자로 전달 될 수도 있다. function cal (func, num) { return func(num) } function increase(num) { return num+1 ..
-
유효범위 - 함수지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 2. 20:40
[출처 : https://opentutorials.org] 유효범위 - 함수 밖에서 변수를 선언하면 그 변수는 전역변수, 함수 안에서 변수를 선언하면 그 변수는 지역역변수 - 지역변수의 유효범위는 함수 안이고, 전역변수의 유효범위는 에플리케이션 전역 - 같은 이름의 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수가 우선 - var를 사용하지 않은 같은 이름의 지역변수는 전역변수가 된다. 지역변수의 사용을 권장 - 함수 안에 전역 변수를 사용하고 있는데 누군가에 의해 전역 변수의 값이 달라지면 함수의 동작도 달라지고 버그의 원인. - 함수의 핵심은 로직의 재활용인데 전역변수를 사용한 함수는 다른 에플리케이션에 이식하는데도 어려움을 초래한다. 전역변수의 사용 - 로직을 모듈화하는 일반적인 방법이다. -..
-
배열 ... 정규표현식 -자바스크립트 기본 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 2. 20:36
[출처 : https://opentutorials.org] 배열 : 연관된 데이터를 모아서 통으로 관리하기 위해 사용하는 데이터 타입. 배열에 원소 추가 var li = ['a', 'b', 'c']; // 하나의 원소 추가 li.push('d'); // return 4; length를 반환 // 복수의 원소 추가 li = li.concat(['e', 'f']); // return (6) ["a", "b", "c", "d", "e", "f"]; 원소를 반환 // 배열의 앞에 원소 추가 li.unshift('z'); // return 7; length를 반환 howmany, element1, ..., elementN); - 배열의 특정 위치(index)에 원소 혹은 배열을 추가하거나 삭제할 때 사용. 대..