brunch

#11. Property 와 Method (현상편)

by 기발자

데이터 타입의 Property 와 Method


지금까지 JavaScript 의 주요 데이터 타입인 Number, String, Array, Function, Object 가 갖고 있는 기본 특징을 살펴보았습니다. #4. 데이터 타입 편에서 언급했듯이 게임 스타크래프트 종족별로 사용할 수 있는 스킬이 다르듯 JavaScript 데이터 타입별로 사용할 수 있는 스킬이 다릅니다. 여기서 얘기하는 스킬이 바로 JavaScript 의 Property 와 Method 를 의미합니다.


이번 장에서는 각각의 데이터 타입이 어떤 Property 와 Method 를 갖고 있는지 알아보겠습니다. 아직 Property 와 Mehtod 가 구분이 잘 되지 않는다면, () 가 없으면 Property, 있으면 Method 로 생각하면 됩니다. ^^


데이터 타입별로 존재하는 Property 와 Method 는 아래 사이트에서 확인할 수 있습니다.







1. Number


MAX_VALUE ( <-> MIN_VALUE )


MAX_VALUE 는 JavaScript 로 나타낼 수 있는 가장 큰 수를 반환하는 Property 입니다. 반대로 MIN_VALUE 는 JavaScript 로 나타낼 수 있는 0에 가장 가까운 수를 반환합니다.


Number.MAX_VALUE // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324



toString()


Number 데이터 타입을 String 으로 반환합니다.


var num = 3.141592;
typeof num.toString(); // String


Number 에서 String 으로 데이터 타입을 바꾸는 toString() 처럼 JavaScript 의 몇몇 Method 의 경우에는 변수가 갖고 있는 원래의 데이터 타입을 변화시키기도 합니다.



toFixed()


소수 자리의 길이를 제한하고 반올림한 값을 String 으로 반환합니다.


var num = 3.141592;
num.toFixed(); // 3
num.toFixed(4); // 3.1416
typeof num.toFixed(4); // String







2. String


length


띄어쓰기를 포함한 문자의 전체 길이를 반환합니다.


var str = "Hello World";
str.length; // 11



indexOf()


String 안에 있는 특정 키워드가 시작되는 Index ( 위치 ) 를 반환합니다. Array 와 마찬가지로 String 의 Index 는 0 부터 시작됩니다. indexOf() 의 첫 번째 argument 는 찾고자 하는 키워드, 두 번째 argument 는 검색을 시작할 Index 의 시작 지점을 의미합니다. 입력시 대소문자를 구분하여 정확하게 입력해야 하며, 특정 키워드가 없을 경우에는 -1 을 반환합니다.


var str = "Hi, I am developer";
str.indexOf("Hi"); // 0
str.indexOf("developer", 9); // 9
str.indexOf("developer", 10); // -1



substring()


특정한 구간에 있는 String 을 추출할 때 사용하는 Method 입니다. 첫 번째 argument 는 시작 지점, 두 번째 argument 는 끝나는 지점을 의미하며, 입력된 두 argument 사이에 있는 String 을 반환합니다.


var str = "Hi, I am developer";
str.substring(7); // m developer 7부터 끝까지
str.substring(0, 7); // Hi, I a 0 ~ 7미만까지



split()


String 을 split() argument 를 기준으로 쪼개서 Array 로 반환합니다. 첫 번째 argument 는 무엇을 기준으로 쪼갤 것인지, 두 번째 argument 는 쪼개진 값들 중 몇 개를 Array로 반환할지를 의미합니다.


var str = "Hi, I am developer";
str.split(""); // 단어 하나하나가 배열에 들어감 ( 분량이 너무 많아서 넣지 못했습니다 ㅠ.ㅠ )
str.split(" "); // 띄어쓰기 기준으로 배열에 들어감 [ 'Hi,', 'I', 'am', 'developer' ]
str.split(" ", 2); // 띄어쓰기 기준으로 2개만 배열에 들어감 [ 'Hi,', 'I' ]







3. Array


length


Array 안에 몇 개의 item 이 담겨있는지 알려줍니다.


var arr = ["apple", "banana", "tomato"];
arr.length; // 3



push() ( <-> unshift() )


Array 에 새로운 Item 을 추가할 때 사용되며, 추가된 Item 은 Array 의 마지막 index 에 위치합니다. 반대로 unshift() 는 Array 의 맨 앞의 index 에 item 을 추가합니다.


var arr = ["apple", "banana", "tomato"];
arr.push("TV"); // 4
arr; // ["apple", "banana", "tomato", "TV"]
arr.unshift("Jobs"); // 5
arr; // ["Jobs", "apple", "banana", "tomato", "TV"]



pop() ( <-> shift() )


Array 의 마지막 index 에 위치한 item 을 제거한 후에 이를 반환합니다. 반대로 shift() 는 Array 의 맨 앞의 item 을 제거한 후 이를 반환합니다.


var arr = ["apple", "banana", "tomato"];
arr.pop(); // tomato
arr; // ["apple", "banana"]
arr.shift(); // apple
arr; // ["banana"]



Join()


Array 의 모든 Item 을 argument 를 사용하여 하나의 String 으로 만듭니다.


var arr = ["apple", "banana", "tomato"];
arr.join(" "); // 띄어쓰기 사용 "apple banana tomato"
arr.join("-"); // - 사용 "apple-banana-tomato"
arr.join(", "); // ,띄어쓰기 사용 "apple, banana, tomato"







4. Function


name


Function 의 이름을 반환합니다.


function sum(a, b, c) {
console.log(a + b + c);
}
sum.name // sum 반환



length


MDN 에서는 함수에 의해 기대되는 인수의 수를 나타낸다고 설명하고 있습니다. 조금 풀어서 얘기한다면 함수에 있는 parameter 의 개수를 의미한다고 볼 수 있습니다.


function sum(a, b, c) {
console.log(a + b + c);
}
sum.length; // 3


Function 에는 call(), apply() 2가지 주요 Method 가 존재하는데, 이를 이해하기 위해서는 this 라는 개념을 숙지할 필요가 있기 때문에 이번 장에서는 스킵하도록 하겠습니다.







Object


hasOwnProperty()


앞서 #9.Object 편에서 언급했던 hasOwnProperty() 가 바로 Object 의 Method 입니다. 다시 한번 소개하면 특정 property 의 존재 유무를 확인할 때 사용되며 값이 존재한다면 true, 없으면 false 를 반환합니다.


var apple = {
"color" : "red",
"taste" : "great",
};
apple.hasOwnProperty("color"); // true
apple.hasOwnProperty("origin"); // false







이번 연재글은 각각의 데이터 타입별로 존재하는 Property 와 Method 에 대해 어디서부터 어떻게 설명해야 할지 고민의 시간의 길어져 발행이 늦어졌습니다. Function 과 Object 의 몇몇 Property 와 Method 의 경우 구체적으로 설명하기에는 여러 개념이 얽혀있어 난이도 상승과 분량이 길어지기 때문에 이번 장에서 마무리 하기에는 무리라고 생각되었습니다. Object 편에서 언급했던 모순점과도 연결되는 부분이라 다시 장에서 한꺼번에 설명드릴 예정이니 조금만 참아주세요 ^^


이번 장에서는 데이터 타입별 Property 와 Method 의 역할에 대해서 간략히 살펴보았습니다. 그외 스킬들에 대해서는 링크로 남겨드린 MDN 사이트에서 확인할 수 있습니다. 그럼 #12. Property 와 Method (기원편) 에서 나머지 뒷 이야기를 이어가도록 하겠습니다.




keyword
매거진의 이전글#10. Primitive && Reference