# JavaScript II

**Over nine weeks, we take you from writing your first JavaScript program all the way to the most modern tools and techniques. You’ll learn how to make website’s interactive and to write excellent, clean code.**

### Before the class <a href="#before-the-class" id="before-the-class"></a>

Fork the [JavaScript Module 2 Workshop repository](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop) to your personal account and clone it. Find help in the [MigraCode GIT Guide](https://syllabus.migracode.org/git#fork-and-clone-an-existing-project-from-github).&#x20;

This is the repo we will be using during the JavaScript module II workshop. Follow README.md file provided in the above mentioned repository.

Below an overview of the week-by-week topics - click on the title to find more details.

### Table of contents

* [**Part-1 JavaScript in the browser**](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#part-1-javascript-in-the-browser)
  * [Node.js versus browser](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#nodejs-vs-browser)
  * [The Document Object Model](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#the-dom)
  * [Attach events to DOM elements](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#attach-events-to-dom-elements)
  * [Create and manipulate DOM elements](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#create-and-manipulate-dom-elements)
* [**Part-2 Objects in JavaScript**](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#part-2-objects-in-javascript)
  * [Object basics](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#object-basics)
  * [Dot notation](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#dot-notation)
  * [Bracket notation](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#bracket-notation)
  * [Setting object members](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#setting-object-members)
  * [What is "this"?](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#what-is-this)
  * [Object built-in methods](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#object-built-in-methods)
  * [Loop through an object](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#loop-through-an-object)
* [**Part-3 Introduction to APIs**](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#part-3-introduction-to-apis)
  * [A frame of reference](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#a-frame-of-reference)
  * [What is an API and why is it valuable](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#what-an-api-is-and-why-its-valuable)
  * [How to use an API](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#how-an-api-is-used)
  * [Representing data](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#representing-data)
  * [JSON](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#json)
  * [JavaScript JSON built-in library](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#javascript-json-built-in-library)
  * [Web Storage API](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#web-storage-api)
  * [Local Storage](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#local-storage)
  * [Session Storage](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#session-storage)
  * [Todo App Local Storage Implementation](https://github.com/Migracode-Barcelona/javascript-module-2-todo-workshop#todo-app-local-storage-implementation)

![](/files/-MSXH5-qc8LZdJ2eO1So)


---

# 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://syllabus.migracode.org/courses/introduction-3/course-content/javascript-ii.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.
