• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

typeof질문입니다!

21.02.20 03:39 작성 조회수 154

1

선생님 강의 잘 듣고 있습니다! 아래 질문을보다 결과 값이 궁금해서 간단하게 코드를 짜봤습니다.

const Questions = prompt ('입력하세요');

console.log(typeof(Questions));

그런데 빈칸으로 놔두고 enter를 치면 type으로 string이 찍히는데 이유가 있을까요? 코드를 실행하기 전까지는 당연하게 undefined이 찍힐 줄 알았는데, string이 찍히니 당황스럽네요ㅠㅠ..

답변 3

·

답변을 작성해보세요.

2

prompt()는 window.prompt()에서 window 오브젝트를 생략한 것으로
1) prompt()는 자바스크립트 함수가 아니라 window 오브젝트 함수입니다.
2) typeof(Questions)에서 string이 출력되는 것은
   prompt 창에서 Enter 키를 누르면, 빈문자열이 반환되며, 반환된 값이 Questions 변수에 할당되기 때문입니다.
3) prompt()에 대해서는 MDN을 참조하세요.
    https://developer.mozilla.org/ko/docs/Web/API/Window/prompt
4) Questions이 변수 이름이므로 첫 문자를 소문자(q)로 작성하는 것이 자바스크립트 코딩 관례입니다.

1

var book;
var js = undefined;
book과 js 변수의 값은 undefined입니다.

var sports = null;
sports 변수의 값은 null입니다.

빈문자열인 것은 prompt()에서 아무것도 입력하지 않으면 빈문자열을 반환하기 때문입니다. 이것은 prompt()의 규칙입니다. prompt()에서 undefined를 반환하는 것이 규칙이라면 input 변수의 값은 undefined입니다.

 

박범님의 프로필

박범

2022.02.06

제가 이해한것이 맞았네요 ! 설명 너무 좋아요 김영보강사님 대박입니다 !! 

0

박범님의 프로필

박범

2022.02.05

일단 값이 할당되므로 undefined 아니고

null값은 직접 값을 대입해야 null 값이므로 아니고

아무것도 입력하지 않았으므로 값은 빈 문자열이 들어감

 

빈문자열의 typeof  타입은  String이므로

String이 나옵니다 

 

var input = prompt();
if (input === "") {
  alert(typeof input);
} else {
  alert(input);
}