목록javascript (6)
roadmap
{ } 표기법으로 빈 객체를 생성할 수도 있지만 생성자를 사용하여 객체를 생성할 수 있다 1 2 3 4 5 6 7 8 9 10 11 function Make(a,b,c) { this.a = a; a = 1111; } var z = new Make(0); console.log(z); var array = new Array(1,1,2,3); var today = new Date(); Colored by Color Scripter cs 생성자 함수는 일반적으로 반환값이 없다. 하지만 생성자 함수에서 결과값으로 객체를 반환하면 반환값을 가질 수는 있다. 이 객체는 new 문장의 결과가 된다. 그리고 생성자 안의 this가 가리키고 있던 객체는 폐기된다. 프로토타입은 객체지향적인 방법으로 프로그램을 작성하게 해준..
javascript 는 메모리 할당/해제를 자동으로 해주는 가비지 컬렉터를 사용한다. 앞서 말했다시피, 더 이상 해당 데이터를 참조할 수 없는 경우, 자동으로 메모리가 해제된다. 링크에서 자세한 메모리 해제 알고리즘도 볼 수 있다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management 자바스크립트의 메모리관리 메모리 생존주기는 프로그래밍 언어와 관계없이 비슷하다. developer.mozilla.org 함수 내부에서 호출된 변수는 함수가 종료될 때, 그 메모리를 반환하고 사라진다 정적 변수는 별다른 조작이 없는 한, 계속 메모리를 차지한다 그러니 가능하면 로컬 변수를 사용하도록 하자 1 2 3 4 5 6 7 8 9 10 11 12 ..
javascript의 배열은 진정한 의미의 배열이 아닌 배열처럼 다룰 수 있는 동적 자료구조이다 js에서는 배열은 추가 기능을 조금 지닌 객체이다 typeof연산자를 콘솔에 입력해보자 1 2 var array = [1,2,3,4,5,6,7,"string"]; typeof array; // 'object' cs C나 자바 같은 언어는 배열이 가질 수 있는 원소의 개수를 지정하고, 개수가 변하지 않는다 그러나 자바스크립트는 임의 개수의 원소를 가졌으며 언제든 변경(삭제,추가)할 수 있다 자바스크립트의 배열은 Array클래스의 인스턴스이며, Array 클래스의 다양한 메서드를 호출할 수 있다 이렇게 배열과 유사한 객체들은 실제 배열의 원소들에 대해 반복 작업을 하는 알고리즘을 그대로 활용할 수 있다 (배열을 ..
객체는 이름과 값으로 구성된 프로퍼티의 집합이다 리터럴이나 생성자를 이용해서 만들 수 있다 1 var obj = {1:'do', 2:'JavaScript', 3:5, 'index':'hello, world'}; // 이름:값 cs 객체의 프로퍼티에 접근하는 방법은 다른 언어와 비슷하게 식별자(.)를 이용하거나 [] 를 사용하여 배열처럼 접근 할 수 있다 1 2 3 4 var obj = {1:'do', 2:'JavaScript', 3:5, 'index':'hello, world'}; // 이름:값 console.log(obj[1]); console.log(obj['index']); console.log(obj.index); Colored by Color Scripter cs 숫자에 접근 할 수 없으므로 o..
자바스크립트는 기본타입과 참조타입을 가지고 있다 본질적으로 값, 참조 개념과 같은 것이다 먼저 C언어에서 문자열을 저장하면 그것을 수정할 수 없다 1 2 3 4 5 6 7 8 #include int main() { char* s = "why?"; s[0] = 's'; // *s과 같음 printf("%s\n", s); } cs 디버깅해보면 s[0]이 0x.... 메모리 번지수를 가리킨다고 나오며 오류가 뜬다 이유는 문자열을 저장하면 일단 그것이 텍스트 세그먼트로 저장된다 그런데 텍스트 세그먼트는 프로그래머가 수정할 수 없고 읽기만 가능하다 s[0] = "s"; 는 s 위치의 것을 문자 's'로 수정하는 것이므로 오류가 나온다 그런데 이렇게 하면 어떨까? 1 2 3 4 5 6 7 8 #include int..
우선 자바스크립트를 배워야 하는 이유가 무엇일까? 1. 클라이언트 사이드(브라우저)에서 동작하는 유일한 프로그래밍 언어이다 2. 웹은 물론이고, 데스크톱 프로그램, 서버 사이드, 모바일 하이드브리드등 다양한 것을 제어할 수 있다 3. 매우 강력한 프레임워크, 라이브러리를 가지고 있다 이 중 1번은 당신이 js를 배울 수 밖에 없는 언어로 만들었을 것이다 따라서 최소한 HTML 기초, CSS 기초를 알고 클라이언트 사이드에 대해 이해하고 진행하자 특이한 것은 JavaScript는 다른 언어들의 각종 패러다임을 포함하고 있다 따라서 핵심적인 패러다임 (reference, object 기초개념)은 알고 시작하는게 좋다 주된 포스팅은 클라이언트 사이드를 제어하기 위한 방향이다