inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 제대로 배워볼래?

String 내장 함수

함수호출

236

군밤고굼

작성한 질문수 11

0

안녕하세요 강사님.
함수호출관련하여 문의드립니다. 제가 아직 초보라서요..
str.length의 경우 str객체에 담긴 길이를 구하는건데요
str.toUpperCase()의 경우 대문자로 바꾸는거구요.
어떤 함수는 length처럼 뒤에 ()없이 호출하고, 어떤함수는 toUpperCase()처럼 뒤에 ()를 붙여야 하구요.
도대체 어떤 차이인걸까요?
실제로 function xxx(){~~~} 이렇게 작성한 함수를 호출할때
어디서는 xxx로 호출하고 어디서는 xxx()로 호출하는것 같아서요.. 너무 헷갈립니다 ㅠ

함수 es6 HTML/CSS javascript

답변 1

0

개발자의 품격

length는 String 객체 내에 정의된(구현된) 하나의 프로퍼티 값입니다. 문자열을 변수에 할당하는 순간 이미 length하는 프로퍼티에 길이 값이 들어가 있게 됩니다. length는 함수가 아니라 프로퍼티이기 때문에 호출해서 사용할때 함수를 호출하는것과 다르게 () 가 붙지 않습니다.

toUpperCase()는 String 객체 내에 정의된 함수입니다. 그렇기 때문에 함수를 호출하는 방식으로 () 를 사용해서 호출하는 것입니다.

감안히 생각해 보면 toUpperCase()는 사용자가 사용할지 안할지 모르는 것이고, 호출되는 시점을 기준으로만 계산이 되면 되는 것이지요.

length의 경우는 이미 변수에 문자열을 할당 할 때 알수 있는 값이기 때문에 함수가 아니라 프로퍼티로 바로 알수 있게 자바스크립트가 구현을 한것이라고 생각하면 됩니다.

외부 라이브러리 사용 질문

0

157

1

module 질문있습니다.

0

586

1

clearInterval, setInterval 질문

1

460

1

window 객체 질문 있습니다.

0

223

1

Date 함수 질문

0

290

1

Boolean 내장함수 강의 질문

0

323

1

4-04(마지막강의)에 있는 json으로 된 js파일은 어디에 있을까요?

0

412

1

Async Await 오류가 나서 문의드립니다.

0

567

2

선생님 안녕하세요. array내장함수 수업듣는중 이해가 안되는 부분이있어서 질문드립니다.

0

338

1

변수 관련 질문

0

289

1

Promis실습 도중의 에러메시지

0

451

2

moment.js cdn 외부 링크 오류

0

1469

1

64비트 부동소수점 내용 중

0

463

1

4-04 22분 15초에 나오는 61, 63 라인에 대해 질의드립니다.

0

253

1

64비트부동소수점 마지막부분 이해가 안가서요...

0

217

1

Chcekbox Element 값

0

229

1

parameter순서

0

469

1

parseInt parseFloat 질문

0

214

1

charAt 인덱스

0

220

0

STRING 결합

0

233

0

왜 오름차순으로 정렬되는지 궁금합니다.

0

247

1

HTML를 위한 자바스립트 4-01.HTML Element.html

0

352

1

함수 강의에서 8:47초 부분 질문 있습니다.

0

228

1

정규식 관련해서 질문이 있습니다.

1

311

2