본문 바로가기

분류 전체보기62

나쁘지만 사용해야 하는 부분 [나쁘지만 사용해야 하는 부분]- 자바스크립트에서 나쁘지만 피하기 힘든 문제가 있는 부분들을 잘 인지하여 사용할 수 있도록 하자. 전역변수- 전역변수는 모든 유효범위(scope) 에서 접근할 수 있는 변수. - 전역변수를 잦게 사용하면 플러그인 충돌, 다른 영역에서 다른 목적으로 동일한 전역변수를 정의할 경우 덮어쓰게 되는 점 등의 오류가 발생하고 어디가 잘못되었는지 찾기 힘들다. - 전역변수의 생성은 세가지가 있다.1) 어떠한 함수에도 속하지 않은 위치에서 (함수 밖에서) var 문으로 선언 var test = 'test'; 2) 전역객체에 직접적으로 속성을 추가. window.test = 'test'; 3) var 없이 변수를 선언 (함수 내에서도 var 없이 선언하면 전역변수가 된다) test = .. 2018. 2. 28.
정규표현식 Chapter 7] 정규표현식- 정규표현식의 사전적인 의미는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다. - 프로그램을 작성할 때 특성상 일정한 규칙을 가진 텍스트 문자열을 사용하는 경우가 많은데 이럴때 정규 표현식을 사용하여 문자열에서 특정 내용을 찾거나 대체할 수 있다. 특히 웹 프로그래밍은 문자열을 다루는 빈도가 특히 높기 때문에 사용하는게 거의 필수적이다. - 자바스크립트는 POSIX 정규표현식에서 확장된 Perl방식을 사용한다. 이 외에도 수많은 정규표현식이 존재하지만 약간의 차이점을 제외하곤 거의 비슷하다.- 정규표현식을 실제로 사용할 때 언어마다 사용방법이 각각 다르다. 자바스크립트의 경우 정규식 리터럴('/' 로 감싸는 패턴) 이나 RegExp 생성자 함수를 이용.. 2018. 2. 28.
배열 [Chapter 5] 배열- 자바스크립트에서 배열은 연속적인 메모리 할당이되는 진짜 배열이 아니고 배열같은 특성을 지닌 객체를 제공해 주는 것이다. - 실제 배열보다 속도는 느리지만 사용하기 편리함에는 변함이 없다. - 배열 전용 유용한 메소드들이 있다. (sort, 값 추가제거, 인덱스 찾기 등..) 1] 배열 리터럴- 배열 리터럴은 타 언어 배열 선언과 마찬가지로 [] 를 사용하여 선언한다. ( var arr = []; ) - 타 언어에서의 배열은 한 배열의 구성요소가 같은 데이터타입 이여야 하지만 자바스크립트 에서는 어떠한 데이터 타입의 조합도 가능하다. [1, 'string', NaN, undefined, true, false, 10.1]... - 객체와 배열은 유사해 보이지만, 생성시 상속받는 .. 2018. 2. 28.
상속 [Chapter 5] 상속- 상속의 유용한 점은 코드를 재사용 하는 것이다. 새로만든 클래스가 기존 클래스와 매우 유사하다면 상속을 통해 다른 부분만 구현해낼수 있다 - 자바스크립트는 클래스를 기반으로 하는 상속을 지원하지 않고 프로토타입 체인을 이용하여 상속을 구현해낸다. (객체가 다른 객체로 바로 상속 된다) 이러한 상속의 구현방식으로 여러가지 패턴이 있다. 01] 의사 클래스 방식(Pseudoclassical)- 의사 클래스는 클래스처럼 행동하지만 진짜 클래스는 아니다. - 클래스가 없는 자바스크립트가 클래스 기반의 상속 방식을 흉내내는 것. - 생성자 함수를 통해서 객체를 생성해야 한다. //동물 생성자 함수 정의 var Animal = function( name ){ this.name = nam.. 2018. 2. 27.
콜백, 모듈, 커링, 메모이제이션 11] 콜백- 이름이 없어 호출하지 못하는 익명함수의 대표적인 용도가 콜백 함수다. - 콜백함수는 코드를 통해 명시적으로 호출하는 함수가 아니라어떠한 이벤트가 발생했을때, 특정 시점에 도달했을때 시스템에서 호출되는 함수다. 대체로 이벤트 핸들러가 콜백 함수로 등록되는 경우가 많다. (이벤트 핸들러는 'on + 이벤트명' 으로 지어져있다.)//페이지 로드시 호출퇼 콜백함수 window.onload = function(){ console.log('browser load~'); } //버튼 클릭시 호출될 콜백함수 document.getElementById("test").onclick = function() { console.log('button click~'); }; //HTML Test이벤트 핸들러가 아닌 .. 2018. 2. 27.
함수 - (스코프, 클로저) 06] 예외- 자바스크립트는 예외를 다룰 수 있는 메커니즘을 제공한다. 예외란 정상적인 프로그램의 흐름을 방해하는 비정상적인 사고를 말한다.(오류발생) - try~ catch 문은 try 블록 내에서 예외가 발생하면, catch 블록이 실행된다. var test_try = function(){ try{ var message = document.getElementById('message'); message.innerHTML = '테스트 메시지222'; }catch(error){ console.log('오류! '+ error); }finally{ console.log('무조건 실행할거야'); } } test_try(); 07] 기본 타입에 기능 추가- 모든 객체가 연결되어있는 prototype 에 기능(메소.. 2018. 2. 26.