> For the complete documentation index, see [llms.txt](https://cs.brash.ca/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cs.brash.ca/unit-2/input-output.md).

# Input / Output

## Text-Driven Input

Your program will take input from the user in the form of typed answers, or *text*. This is the simplest method of gathering input from the user. Some languages allow input on the command-line or wait for the user to type a response, some do both. This is text-based input where the user utilizes the keyboard to enter data.

Javascript utilizes the [**`prompt()`**](/unit-2/input-output/prompt-alert-confirm.md#prompt) command for this (not available in Node.js).

## Event-Driven Input

User input can also be collected with the click of a mouse, a voice command, or a selection from options. We call these actions **`Events`**. Essentially, your program "listens" for events and when one happens, it reacts accordingly.

**Later in the course**, if we progress well enough, we can learn how to deal with a user clicking a button or selecting something on a webpage. This would take us away from the console and allow us to develop a front-end or graphical user interface (GUI). Hopefully more on that later.
