JS 32 data-type
Data type
demo35.html
primitive type
data의 형태
크게 두가지 : 객체와 객체가 아닌 것
-
객체가 아닌 것
- number : 숫자
- string : 문자열
- boolean : 불린
- null : 값이 없는(의도)
- undefined : 값이 지정되지 않은
- 제외한 모든 것 : 객체
Wrapper object
Object access Operator가 동작하면
string을 wrapper object로 감싸서 객체처럼 사용하게 함
- null / undefined 에는 wrapper object가 존재하지 않음
const str = "coding";
console.log(str.length);
//: 6
console.log(str.charAt(0));
//: c
//문자열이 담긴 str에 담긴 문자열 'coding'이 객체처럼 동작한다
//Object access Operator
//문자열은 primitive data지만
//문자열을 제어(작업)하기 위해서 객체인 것 처럼 취급
//str = new String('coding'); 인 것 처럼 동작시킴
Object access Operator
const str = "coding";
str.prop = "everybody";
console.log(str);
//: coding
console.log(str.prop);
//: undefined
//str.prop = "everybody"; 문자열이 담긴 str에
//prop이라는 property를 선언해줬지만 error가 나지않음
//하지만 .prop을 출력하면 undefined
//2행에서 실행될 때 Object access Operator가
//문자열을 객체인 것 처럼 취급해서 동작하게 되지만
//2행이 끝나고나면 다시 primitive data로 돌아갔기 때문
plus
위의 코드가 원래 의도했던 기능?
function Str(write) {
this.write = write;
this.prop = function () {
return this.write + " everyday";
};
}
const str = new Str("coding");
console.log(str.prop());
//: coding everyday
function Str(write) {
this.write = write;
}
Str.prototype.prop = function () {
return this.write + " everyday";
};
const str = new Str("coding");
console.log(str.prop());
//: coding everyday