본문 바로가기

Programming

(465)
5. Javascript 배열 (3) - 배열 push( ) 메소드 length 프로퍼티 기반 배열 표준 메소드 대부분의 배열 관련 표준 메소드는 length 프로퍼티를 기반으로 동작합니다. 그래서 length 프로퍼티의 유무 여부는 해당 객체가 배열인지의 여부와 거의 직접적인 관계가 있다고 해도 과언이 아닐 정도로 중요합니다. 단순히 배열 객체 안의 원소 개수만을 출력하는 기능이라고 가볍게 여겨서는 안되죠. 여기서는 간단하게 예시로 push( )메소드를 통해, 배열 표준 메소드의 동작 방식을 살펴보도록 하겠습니다. push( ) 메소드 배열 표준 메소드인 push( )는 인자로 넘어온 값을 해당 배열의 끝에 추가하는 메소드 입니다. 단, 여기서 '배열의 끝'의 기준은 해당 배열의 length가 됩니다. 요약해 정의하면, [현재 length 프로퍼티 값과 동일한 인덱스에..
5. Javascript 배열 (2) - 배열의 length 배열 length 프로퍼티의 특성 배열의 length 프로퍼티는 기본적으로 배열의 원소의 개수를 표현하지만, 반드시 원소의 개수와 일치하지는 않습니다. Javascript 배열의 특징 중 하나인데요, 배열 내의 인덱스 값 중 가장 큰 인덱스 값을 기준으로 산출하는 프로퍼티 입니다. 사실상 배열의 length에 대해서는 아래와 같이 정의할 수 있습니다. [배열의 인덱스 값 중 가장 큰 인덱스 + 1] 즉, 다음 예제와 같이 동적으로 배열의 원소를 할당하고 난 후 해당 배열의 length 값을 출력해보면 위의 정의가 쉽게 이해될 것입니다. var newArr =[]; console.log(newArr.length); newArr[0] = 10; newArr[1] = 20; newArr[99] = 999; c..
5. Javascript 배열 (1) - 배열의 특성 Javascript 배열의 특징과 배열 리터럴 자바스크립트의 배열은 타 언어의 배열과 달리 크기 지정이 필요 없고, 저장 위치에서 자유롭습니다. 우선 이에 따라 기본적인 배열 생성 방식에 대해 알아보겠습니다. 앞서 살펴본 객체 리터럴과 마찬가지의 방법으로, 배열 리터럴을 통해 배열을 생성할 수 있습니다. 배열 리터럴은 객체와 달리 대괄호( '[ ]' )를 사용합니다. 배열 리터럴을 통해 원소 3개를 가진 배열을 선언하고, 각 원소를 출력해 보겠습니다. var newArr = [ 'one', 'two', 'three' ]; console.log(newArr[0]); console.log(newArr[1]); console.log(newArr[2]); 대괄호를 이용해 각 원소를 선언하고, 이후에 인덱스 넘버..
4. Javascript 프로토타입([[Prototype]]) Javascript의 프로토타입 자바스크립트의 모든 객체는 프로토타입 객체를 갖습니다. 이는, 일반적인 객체지향 언어에서의 상속 개념과 거의 동일하고 부모 객체의 프로퍼티를 그대로 사용할 수 있다는 특성을 보여줍니다. 이 프로토타입은 Javascript에서 객체가 생성되는 시점에 일정한 규칙에 따라 정해집니다. 객체가 생성되는 방식도 여러가지 경우의 수가 존재하기 때문에, 이에 따른 생성 규칙은 추후에 알아보겠습니다. 우선은 객체 리터럴 방식으로 객체를 생성한 후, 프로토타입에 대해서 알아보겠습니다. var newObj = { age : 20, name : 'John Doe' }; console.log(newObj.toString()); console.dir(newObj); 위와 같이 newObj 객체를..
3. Javascript 참조 타입의 특성 Javascript 참조 타입의 특성 ○ Javascript 기본타입인 숫자 / 문자열 / 불린 / null / undefined를 제외한 모든 값은 객체입니다. ○ 객체의 모든 연산은 실제 값이 아닌 참조값으로 처리합니다. 객체가 갖는 '참조'의 의미는? 아래와 같이, 임의의 객체와 해당 객체의 프로퍼티를 생성하고 대입하는 과정을 살펴보겠습니다. var newObjA = { value : 100 }; var newObjB = newObjA; console.log(newObjA.value); console.log(newObjB.value); /* 출력 */ // 100 // 100 새로운 객체 newObjA에 프로퍼티 value를 선언해 두었습니다. 그리고 newObjB에 newObjA 객체 자체를 대입..
2. Javascript 참조 타입 (2) - 객체 프로퍼티 읽고, 쓰고, 삭제하기 객체에 생성된 프로퍼티 접근 객체에 생성한 프로퍼티에 접근할 때는 (1) 대괄호([ ]) 또는 (2)마침표( . )를 사용해 접근합니다. 아래와 같은 예제 객체를 생성했다고 가정해봅시다. var indigo = { name : 'james', company : 'google' }; 객체 indigo에 있는 프로퍼티인 name과 company를 각각 출력해 봅시다. 이때, 출력할 프로퍼티를 위에서 언급한 대괄호와 마침표 표기법을 각각 사용해 출력을 테스트해 보겠습니다. console.log(indigo.name); console.log(indigo['company']); /* 출력 */ // james // google 모두 정상적으로 프로퍼티 값이 출력되는 것을 확인할 수 있습니다. 상황과 필요에 따라서..
2. Javascript 참조 타입 (1) - 객체 생성 Javascript의 참조 타입 앞서 살펴본 기본 타입을 제외한 모든 값은, Javascript에서 모두 '객체'입니다. 기본 데이터 타입과의 가장 큰 차이는, 기본 데이터 타입은 하나의 값을 가지는 데 비해 참조 타입 객체는 여러개의 속성 값 - 즉 프로퍼티(property)를 갖습니다. 이 프로퍼티는 기본 타입의 값도, 다른 객체도 가리킬 수 있습니다. 객체는 흔히 사용하는 자료구조와 마찬가지로, key : value 형태로 값을 저장하게 됩니다. 또한, 프로퍼티로서 저장된 함수를 메서드로 별도로 칭합니다. 객체를 생성하는 방법 C#이나 JAVA를 주로 사용하셨던 분들이라면, 이 객체의 개념을 주로 클래스를 이용한 인스턴스의 생성으로 생각하시는 분들도 있을 겁니다. 나중에 다루겠지만, Javascri..
1. Javascript 기본 데이터 타입(2) 불린(boolean) ○ 다른 언어와 마찬가지로, true / false를 나타내는 불린 타입의 값을 갖습니다. 데이터 타입은 'boolean'입니다. var boolVari = true; console.log(typeof(boolVari)); // boolean var a = 10; var b = 10; var c = 20; var resultA = a === b; console.log(resultA); // true var resultB = b === c; console.log(resultB); // false undefined ○ undefined는 javascript에서 아무런 값이 할당되지 않은 상태를 나타내는 데이터 타입입니다. ○ 동시에, undefined는 변수 자체의 값을 의미하기도 합니..