다음의 글을 공부하고 재 정리하면서 코드로 적어본 것들
https://ko.javascript.info/primitives-methods
// 원시 래퍼 객체를 통해 원시값이 메서드나 프로퍼티에 접근 가능하게 한다.
// String, Number, Boolean, Symbol
let str = "Hello";
console.log('/////////////////////////////////');
console.log( str.toUpperCase() );
console.log('----------------------------------');
console.log('실행 프로세스');
console.log('/////////////////////////////////');
let explain = `1. 문자열 str은 원시값이므로 원시값의 프로퍼티(toUpperCase)에 접근하는 순간
특별한 객체(래퍼 객체)가 만들어진다.
이 객체는 문자열의 값을 알고 toUpperCase()와 같은 유용한 메서드를 갖고있다.
2. 메서드가 실행되고, 새로운 문자열이 반환된다. console에 문자열이 출력된다.console
3. 특별한 객체는 사라지고 원시값 str만 남는다.`;
console.log(explain);
let n = 1.23456;
console.log(n.toFixed(2));
`new Number(1)이나 new Boolean(false)와 같은 문법을 사용해 래퍼 객체를 직접 만들 수 있으나
비추한다.
몇몇 상황에서 혼동을 불러일으킨다.`
console.log( typeof 0 ); // number
console.log( typeof new Number(0) ); // object
console.log(new Number(0)); // [Number: 0]
`객체는 논리 평가 시 항상 참을 반환하기 떄문이다.Number`
let zero = new Number(0);
console.log(zero); // [Number: 0]
console.log(zero.toString());
if (zero) {
console.log('그런데 여러분은 zero가 참이라는 것에 동의하시나요?');
}
`그러나 new를 붙이지 않고 String/ Number/ Boolean을 사용하는 것은 괜찮다. 상식에 맞게 인수를 원하는 형의 원시값(문자열,숫자,불린값)으로 바꿔준다.`
let num = Number("123"); //문자열을 숫자로 바꿔준다.
console.log(num);
`null/undefined는 메서드가 없다.`
// console.log(null.test); // TypeError: Cannot read property 'test' of null
'IT > Javascript' 카테고리의 다른 글
은닉화, 자동화, 객체화, 중복 최소화, 결합도 낮춤, 샤이 코드 ... 같은 맥락? (0) | 2021.01.18 |
---|---|
location.href - 페이지 이동 (0) | 2021.01.10 |
(4-7) 심볼형 (0) | 2020.07.19 |
리터럴 표기법, 리터럴 방식 (0) | 2020.07.13 |
자바스크립트 및 제이쿼리 정리 (0) | 2019.07.10 |