3. 네이티브
네이티브
Javasciprt 내 내장함수!!
FP에서 함수도 객체다!
따라서 new
같은 인스턴스 생성키워드가 붙지 않음. 붙는것과 차이가 또 있다.!
네이티브 종류
String()
가장기본
Number()
숫자
Boolean()
t/f
Array()
배열
Object()
일반적인 객체
Function()
함수
RegExp()
정규식
Date()
날짜
Error()
에러타입
Symbol()
?
주요 개념 및 내용
각 네이트브들은 리터럴 값을 박싱하여 제공 해준다. 리터럴과 네이티브의 차이점이 중요
박싱 & 언박싱
new String("abc") -> 문자열 abc를 String 이란 내장함수를 통해 박싱 new String("abc").valueOf() -> 박싱된 String 내장함수를 valueOf()메서드로 언박싱
네이티브 -> 생성자
네이티브란 자스에서 제공하는 내장함수인데.
new
키워드를 통해 함수도 인스턴스화가 가능. 여기에서 constructer가 관여하게 되는데 아마 프로토타입부분에서 나오지 않을까 한다.
주의 사항
배열에 생성자 1개는 크기 지정 / 2개이상부터 값
var a = new Array(3); // 크기 3을 지정 a.length; // 3 var a = new Array(1,2,3,4); // [1,2,3,4]
그외 빠트린 부분 정리
Object.prototype.toString.call(값)
내부
[[Class]]
확인// 타입을 알 수 있음 console.log(Object.prototype.toString.call("aasd")); // [object String] console.log(Object.prototype.toString.call(1234)); // [object Number] console.log(Object.prototype.toString.call(true)); // [object Boolean] console.log(Object.prototype.toString.call(/.*abc.*/i)); // [object RegExp] console.log(Object.prototype.toString.call(function () {}));// [object Function] console.log(Object.prototype.toString.call({})); // [object Object] console.log(Object.prototype.toString.call([])); // [object Array] console.log(Object.prototype.toString.call(new Date())); // [object Date] console.log(Object.prototype.toString.call(null)); // [object Null] console.log(Object.prototype.toString.call(undefined)); // [object Undefined]
테스트 코드
(function () {
var a = new String("abc"); // String 함수 실행 -> 함수도 객체
console.log(a); // [String: 'abc']
console.log(a.toString()); // abc
console.log(typeof a); // object
// String()은 Object 하위 클래스 같은 개념
console.log(a instanceof String); // true
console.log(a instanceof Object); // true
console.log(Object.prototype.toString.call(a));
console.log("============");
var b = String("abc");
console.log(b); // abc
console.log(b.toString()); // abc
console.log(typeof b); // string
console.log(Object.prototype.toString.call(b));
console.log(Object.prototype.toString.call("aasd")); // [object String]
console.log(Object.prototype.toString.call(1234)); // [object Number]
console.log(Object.prototype.toString.call(true)); // [object Boolean]
console.log(Object.prototype.toString.call(/.*abc.*/i)); // [object RegExp]
console.log(Object.prototype.toString.call(function () {}));// [object Function]
console.log(Object.prototype.toString.call({})); // [object Object]
console.log(Object.prototype.toString.call([])); // [object Array]
console.log(Object.prototype.toString.call(new Date())); // [object Date]
console.log(Object.prototype.toString.call(null)); // [object Null]
console.log(Object.prototype.toString.call(undefined)); // [object Undefined]
var a = new Array(3); // 크기 3을 지정
console.log(a.length);
console.log(a);
var a = Array(3); // 크기 3을 지정
console.log(a.length);
console.log(a);
})();
Last updated
Was this helpful?