자바스크립트

    [JavaScript] 프로토타입

    상속(inheritance) 상속(inheritance)이란 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것을 의미한다. 상속을 통해 새로운 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용할 수 있다. 또한, 클래스 간의 종속 관계를 형성함으로써 객체의 관계를 조직화할 수 있는 장점이 있다. 따라서 이러한 상속은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나가 된다. 하지만 C#이나 C++과 같은 클래스 기반(class-based)의 객체 지향 언어와는 달리 자바스크립트는 프로토타입 기반(prototype-based)의 객체 지향 언어다. 프로토타입 기반이기 때문에 상속의 개념이 클래스 기반의 객체 지향 언어와는 약간 다르다. 자바스크립트..

    [JavaScript] 객체의 생성

    객체의 생성 자바스크립트에서 객체를 생성하는 방법은 다음과 같다. 리터럴 표기(literal notation)를 이용한 방법 생성자 함수(constructor function)를 이용한 방법 Object.create() 메소드를 이용한 방법 위와 같은 방법으로 생성되어 메모리에 대입된 객체를 인스턴스(instance)라고 한다. 리터럴 표기를 이용한 객체의 생성 자바스크립트에서 객체를 생성하는 가장 쉬운 방법은 리터럴 표기(literal notation)를 이용하는 방법이다. 문법 var 객체이름 = { 프로퍼티1이름 : 프로퍼티1의 값, 프로퍼티2이름 : 프로퍼티2의 값, ... }; 각각의 프로퍼티는 이름과 값을 콜론(:)으로 연결하고, 쉼표(,)를 사용해 다른 프로퍼티와 구분한다. 프로퍼티의 이름으..

    [JavaScript] 객체의 개념

    객체(object)란? 객체(object)란 실생활에서 우리가 인식할 수 있는 사물로 이해할 수 있다. 객체의 예 객체(object) - 고양이 프로퍼티(property) - cat.name = "나비" - cat.family = "코리안 숏 헤어" - cat.age = 0.1 - cat.weight = 300 메소드(method) - cat.mew() - cat.eat() - cat.sleep() - cat.play() 고양이 객체는 모두 위와 같은 프로퍼티를 가지지만, 각 프로퍼티의 값은 인스턴스마다 전부 다를 것이다. 자바스크립트 객체 자바스크립트의 기본 타입(data type)은 객체(object)이다. 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은..

    [JavaScript] 미리 정의된 전역 함수

    미리 정의된 전역 함수(predefined functions) 자바스크립트는 사용자의 편의를 위해 다양한 기능의 여러 전역 함수를 미리 정의하여 제공한다. 이러한 전역 함수는 자바스크립트의 어떤 타입의 객체에서도 바로 사용할 수 있다. 자바스크립트에서 미리 정의되어 있는 전역 함수는 다음과 같다. eval() isFinite() isNaN() parseFloat() parseInt() decodeURI() decodeURIComponent() encodeURI() encodeURIComponent() escape() unescape() Number() String() eval() eval() 함수는 문자열로 표현된 자바스크립트 코드를 실행하는 함수다. 문법 eval("문자열"); var x = 10, y..

    [JavaScript] 매개변수와 인수

    매개변수(parameter) 자바스크립트에서 함수를 정의할 때는 매개변수의 타입을 따로 명시하지 않는다. 함수를 호출할 때에도 인수(argument)로 전달된 값에 대해 어떠한 타입 검사도 하지 않는다. 함수를 호출할 때 함수의 정의보다 적은 수의 인수가 전달되더라도, 다른 언어와는 달리 오류를 발생시키지 않는다. 이 같은 경우 자바스크립트는 전달되지 않은 나머지 매개변수에 자동으로 undefined 값을 설정한다. ※ 매개변수(parameter)란 함수의 정의에서 전달받은 인수를 함수 내부로 전달하기 위해 사용하는 변수를 의미한다. 인수(argument)란 함수가 호출될 때 함수로 값을 전달해주는 값을 말한다. 다음 예제는 3개의 매개변수를 가지는 함수에 각각 다른 수의 인수를 전달하는 예제다. fun..

    [JavaScript] 함수의 유효 범위(function scope)

    함수의 유효 범위(function scope) 대부분의 프로그래밍 언어에서는 블록 내에서 정의된 변수를 블록 외부에서는 접근할 수 없다. 블록(block)이란 코드 내에서 중괄호({})로 둘러싸인 부분을 가리킨다. 이러한 블록을 기준으로 하는 유효 범위를 블록 단위의 유효 범위라고 한다. 하지만 자바스크립트는 다른 언어와는 달리 함수를 블록 대신 사용한다. 자바스크립트에서 함수는 자신이 정의된 범위 안에서 정의된 모든 변수 및 함수에 접근할 수 있다. '전역 함수'는 모든 전역 변수와 전역 함수에 접근할 수 있다. 반면, 다른 함수 내에 정의된 '내부 함수'는 그 함수의 부모 함수(parent function)에서 정의된 모든 변수 및 부모 함수가 접근할 수 있는 모든 다른 변수까지도 접근할 수 있다. ..