[JS] 식별자를 겉모습으로 판단?

Chanki Hong·2022년 11월 25일
0

JavaScript

목록 보기
25/30
post-thumbnail

배열 내장 함수(배열 조작 메서드)를 공부하다가 .length 만 뒤에 () 가 없는 것이 궁금했다.
보기에는 배열의 크기를 리턴해주는 함수 같은데, () 가 없다. (사실 배열뿐 아니라 다양한 데이터 타입에서 사용 가능하다.)
기억해 보니 공부하는 동안 .length 와 비슷한 함수들을 이용했었다.

함수를 호출하기 위해서는 () 가 있어야 하고 () 가 없다면 호출이 아닌 참조만 된다고 알고 있었는데 그동안 왜 리턴값을 받을 수 있었을까?
.length는 함수(메서드)가 아닌 프로퍼티였다.
그렇기 때문에 () 가 있으면 안 된다.
왜냐하면 숫자가 저장되는 프로퍼티(변수)이기 때문이다.

내 생각이지만 배열, 변수 등이 선언 및 할당되면, JS에는 내부적으로 몇 가지 정보가 함께 기록되는 것 같다.
그중 .length 에 그 크기 정보가 숫자로 저장되어 있고 그것을 이용하는 것 같다.

let krName = '자바스크립트';
console.log(krName.length); // 6출력.

변수에서도 작동한다는 것은 변수도 length 프로퍼티를 가지는 것이고, 그렇다면 JS의 대부분은 객체처럼 작동하는 것인가?
나중에 좀 더 성장하게 되면 자연스레 알 수 있겠죠?
성장했습니다. 정답은 여기.


식별자의 겉모습은

식별자 뒤에 괄호가 있을 때

함수

  • 단독으로 사용.

메소드

  • 다른 식별자와 함께 사용.
// log는 console객체의 메소드.
// abs는 Math객체의 메소드.
console.log(Math.abs(-1996));

식별자 뒤에 괄호가 없을 때

변수

  • 단독으로 사용.

프로퍼티

  • 다른 식별자와 함께 사용.
// length는 프로퍼티.
let krName = '자바스크립트';
console.log(krName.length); // 6출력.

// PI는 Math객체의 프로퍼티.
Math.PI;

0개의 댓글