# Prompt, Alert, Confirm

## Prompt

**Javascript** provides a simple way to collect input from the user - the `prompt()` function:

```javascript
// Input must be stored in a variable or else it goes nowhere!
let userResponse = prompt("What is your name?");
```

The [**`prompt`**](https://www.w3schools.com/jsref/met_win_prompt.asp) command has two arguments. *`prompt(text, [defaultText])`* and returns a `string` of what the user entered. *It is important to note, that it returns a string*.

{% embed url="<https://repl.it/repls/CompetitiveDistantBackup>" %}

If the user clicks **cancel**, then the `prompt()` function returns `null`.

## Alert

The [**`console`**](/unit-2/input-output/the-console.md) is a great way to give output as a developer (testing, errors, warnings) but general users do not *see* the console window! If you want to give a quick pop-up of information to the user (without any input from the user), you can use the `alert()` function.

![General Alert window with OK button](/files/-LRdad001ZwV8b7Yu03j)

The `alert()` function is very simple. It takes a string and returns nothing. To use it, you just call it with whatever you want shown in the pop-up box.

```javascript
alert("The sky is falling, the sky is falling!");
```

## Confirm

Maybe you don't want text from the user but rather a YES or NO (or perhaps `OK` or `CANCEL`). Javascript provides the `confirm()` function to ask the user a question and present them with two choices that equate to `true` or `false`.

![Press OK for yes, CANCEL for no](/files/-LRdcIZ7KSfMBrw_InSA)

The ability to retrieve a boolean value from the user can be very useful. The `confirm()` function takes a string as input and returns a boolean.

```javascript
let userAnswer = confirm("You will become a zombie");
```

{% hint style="success" %}
While many examples could be provided of the three methods listed, it is much more rewarding if you try them out yourself.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cs.brash.ca/unit-2/input-output/prompt-alert-confirm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
