브라우저는 사용자와 상호작용할 수 있는 세 가지 함수를 제공합니다.
alert메시지를 보여줍니다.prompt사용자에게 텍스트를 입력하라는 메시지를 띄워줌과 동시에, 입력 필드를 함께 제공합니다. 확인을 누르면 prompt 함수는 사용자가 입력한 문자열을 반환하고, 취소 또는 Esc를 누르면 null을 반환합니다.confirm사용자가 확인 또는 취소 버튼을 누를 때까지 메시지가 창에 보여집니다. 사용자가 확인 버튼을 누르면 true를, 취소 버튼이나 Esc를 누르면 false를 반환합니다.위 함수들은 모두 모달 창을 띄워주는데, 모달 창이 떠 있는 동안은 스크립트의 실행이 일시 중단됩니다. 사용자가 창을 닫기 전까진 나머지 페이지와 상호 작용이 불가능합니다.
지금까지 살펴본 세 함수엔 두 가지 제약사항이 있습니다.
브라우저에서 제공하는 `prompt` 함수는 두 개의 인수를 받습니다.
`result = prompt(title, [default]);`
함수가 실행되면 텍스트 메시지와 입력 필드(input field), 확인(OK) 및 취소(Cancel) 버튼이 있는 모달 창을 띄워줍니다.
- `title`사용자에게 보여줄 문자열
- `[default]`입력 필드의 초깃값(선택값)
두번째 매개변수는 선택사항이지만 매개변수가 없는 경우 IE는 `"undefined"`를 입력 필드에 명시합니다. 때문에 IE 사용자를 비롯한 모든 사용자에게 깔끔한 프롬프트를 보여주려면 아래와 같이 두 번째 매개변수를 항상 전달해 줄 것을 권장합니다.
`let test = prompt("Test", ''); // <-- IE 사용자를 위한 매개변수 처리`