inflearn logo
강의

講義

知識共有

モダンJavaScript(ES6+)の基本

2. Unicode 関数: fromCodePoint(), codePointAt(), [整理時間], normalize()

[정리시간]부족하지만...

239

jaeu choi

投稿した質問数 1

3

fromCodePoint() 와 codePointAt()의 차이는

함수와 메소드의 차이입니다.

함수와 메소드의 차이는 객체에 종속 되는가? 라고 생각합니다.

 

빌트인 오브젝트는 엔진이 만든 객체이고, 우리가 사용하는 값들은 객체로 생성된 인스턴스라는 생각입니다.

 

fromCodePoint()는  코드포인트를 해당하는 문자로 반환하는 함수인데,

유니코드의 코드포인트는 "숫자"입니다. 

만약 "숫자"에 fromCodePoint()를 '메소드'로 연결하려한다면,

자바스크립트엔진은 "숫자"를 Number타입으로 판단하고 빌트인Number오브젝트 객체안에서

fromCodePoint()를 찾으려 할 것입니다.(당연히 에러가나고 엔진은 찾지도 않겠지만 '만약'입니다)

'숫자'를 처리한다는 것이 요점입니다. 처리하기이전에 생성되어야하고

개발자입장에서 생성하는과정은 생략되어있지만 엔진입장에서는

let num = 123 은

let num = new Number(123);// 이과정이 생략되어있음을 기억해야합니다.

이것이 유니코드 "숫자"를 처리하는 빌트인String오브젝트의

fromCodePoint()가 메소드가 될수 없고 함수 일수 밖에 없는 이유입니다.

빌트인 Number오브젝트의 인스턴스인 '숫자'에 빌트인String오브젝트의 '메소드'를 연결하는것은 맞지않으나,

함수의 파라미터로서 숫자를 받아 처리하는것은 상관없기 때문입니다. 

 

반대로

codePointAt()은 "문자열"을 유니코드포인트로 반환합니다.

중요점은 "문자열"을 처리한다는 것입니다.

"문자열"이 이미 빌트인String오브젝트 객체로 생성된 인스턴스입니다. 마찬가지로

let hello = "hello" 는

let hello = new String("hello") 가 생략되어있음을 기억해야합니다.

이때 인스턴스와 객체는 프로토타입으로 연결되어있고 인스턴스는 빌트인String오브젝트 메소드를 상속받아

사용할수있습니다. 

 

메서드는 객체에 종속된다는 설명은 이런것입니다.

메서드는 메서드를 가지고 있는 객체, 그리고 그 객체로 생성되고 메소드를 상속받은 인스턴스만

메서드를 사용하기를 바라는(기대하는) 것입니다.

굳이 그렇지 않다면 같은기능을 하는 함수로 정의하면 되는거 아닐까요?

굳이 메소드로 만들 이유가없습니다.

 

그러므로 만약 codePointAt()앞에 [1,2,3]을 작성한다면,

 is not function() 에러가 뜨겠지만, 엔진입장에서는

[1,2,3]은 빌트인Array오브젝트 객체로 생성된 인스턴스이기때문에 빌트인Array오브젝트 객체안에서는

해당 메소드를 찾을수 없다는 논리로 설명 할수 있겠습니다. 

 

부족하지만 제 이해는 이렇습니다. 다른분들은 더 나은 답을 찾으시리라 믿습니다.

감사합니다.

 

 

 

 

 

 

 

 

 

es6 javascript

回答 0

prototype의 메소드 내부에 화살표 함수가 작성된 경우

1

230

0

let 변수 호이스팅

0

382

1

[제네레이터함수, yield를 활용한 무한 덧셈] 식, result += yield result를 어떻게 이해 해야할까요???

0

408

1

자바스크립트도 컴파일을 하나요?

0

629

1

틀린부분 질문드립니다

0

305

1

clear() 메소드 관련 질문

0

251

0

실행 시점

0

162

0

yield에 대해 질문이 있습니다.

0

304

2

window 오브젝트에서의 함수표현식 호출

0

279

1

Unicode 관련 정리

2

227

1

화살표 함수의 this 의 정적 스코프 참조 부분 질문드립니다.

0

205

1

선생님께서 ES5 심화과정에서 알려주신 event 처리 방법 나이스입니다!

1

214

1

안녕하세요.선생님 질문이 생겨서 글남깁니다.

0

204

1

안녕하세요.선생님 질문 있습니다.

1

264

2

Array.from()이랑 Array.of()랑 설명이 뒤바뀐 것 같아요..

0

179

1

Arrow Function 에서 Scope 관련 질문이 있습니다.

1

299

5

setPrototypeOf() 는 정의에 대해 헷갈린 점 질문 드립니다.

5

234

1

[강의자입니다] 브라우저 디버거 창의 오른쪽에 let, const 변수 표시

5

290

0

디버깅 맨 처음부터 Script에 globalLet이 설정되어있습니다.

1

244

1

강의 pdf 파일 공개 부탁드립니다

0

171

1

아 전역에 let을 선언해도 순서대로 읽는군요;;

2

241

1

Symbol.species 질문입니다.

0

421

1

글의 정리가 안되어있어 삭제했습니다.

0

164

1

DevTools > Sources 에서 Block을 볼 수 없어요!

0

278

4