자바스크립트내에서 변수와 객체의 차이는 크게 두드러지지않는다.
1
2
3
4
|
<script>
var primtnumber = 72;
var number = new Number(72);
</script>
|
cs |
여기서 primtnumber는 변수이고, unmber는 생성자를 사용했기때문에 객체이다. 변수와 객체 둘다 속성과 메서드를 가지고 있고, 차이는 단하나이다. 바로 변수에는 메서드를 추가하지 못한다는 것이다. 하지만 Number객체에 prototype으로 메서드를 추가하면 변수에도 똑같은 메서드가 추가하니 큰 차이라고 할 수 없다. 만약 두 변수와 객체를 동일한 것으로 비교하고 싶으면 constructor Object메서드를 사용하면된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<script>
Number.prototype.method = function(){
return "PROMT NUMBER";
}
var primtnumber = 72;
var number = new Number(72);
var output = '';
output += primtnumber.method() + '\n';
output += number.method() + '\n';
alert(output);
</script>
|
cs |
이렇게 메서드를 추가할 수가있다. 객체는 문자열로 변경될때 자동으로 toString 메서드를 실행시킨다.
1
2
3
4
5
6
7
8
9
10
|
<script>
var student = {
name : '윤명월',
grade : '대학교 1학년',
toString : function(){
return this.name + " : " + this.grade;
}
}
alert(student);
</script>
|
cs |
위 코드를 보면 객체를 경고창에 띄울려했을 뿐인데 자동으로 toString()메서드가 실행된 것을 볼 수 있다.
String객체
String객체는 기본적으로 length속성을 가진다. 속성은 하나지만 수많은 메서드를 가진다. 주요메서드는 다음과 같다.
- charAt(position) - position위치에있는 문자를 리턴한다.
- indexOf(searchString, position) - 앞에서부터 위치한 searchString의 위치를 리턴한다.(default 0부터)
- lastIndexOf(searchString, position) - 뒤에서부터 위치한 searchString의 위치를 리턴한다.
- match(regExp) - 문자열내에 regExp가 있는지 확인한다.
- replace(regExp, replacement) - regExp를 replacement로 바꾸고 리턴한다.
- split(separator, limit) - separator로 문자열을 잘라 배열로 리턴한다.
- substr(a, b) - a부터 b까지 문자열을 잘라 리턴한다.
- substring(start, end) - start부터 end까지 문자열을 잘라 리턴한다.
메서드체이닝을 사용해서 String내장함수를 동시에 여러번 사용할 수 있다. String객체를 charCodeAt()함수를 이용해 Number객체로 바뀌면 Number객체가 가지고있는 메서드로 체이닝 할 수도있다.
1
2
3
4
5
6
|
<script>
var hello = 'abcdefg';
hello = hello.toUpperCase().substring(0, 3);
alert(hello);
</script>
|
cs |
'Javascript' 카테고리의 다른 글
JavaScript(3) - 내장 객체(Array) (0) | 2019.04.17 |
---|---|
JavaScript(1) - 캡슐화와 상속 (0) | 2019.04.15 |