# micro:bit/JavaScript Documentation

JavaScript docs for the micro:bit

### @section full

### @parent reference

### @short JavaScript

### ~hint 

**Spotty internet? No problem!** (1) When online, go to https://www.microbit.co.uk/app/ and bookmark this URL; (2) use the bookmark to reload the web app, even without the internet.

### ~

Welcome to the Touch Develop home page for the BBC micro:bit. Below you will find resources about the Touch Develop programming language and code editor. Good places to start include:

* [the Touch Develop Editor](/microbit/js/editor)
* [30+ BBC micro:bit lessons](/microbit/lessonss)
* [offline support](/microbit/offline)

### ~column 

## Language {#pconst}

### Variables

* [local variables](/microbit/reference/variables/var)
* [global variables ](/microbit/js/data)

### Types

* [Number](/microbit/reference/types/number)
* [Boolean](/microbit/reference/types/boolean)
* [String](/microbit/reference/types/string)
* [Image](/microbit/reference/image/image)

### Statements and control structures

* [assignment operator](/microbit/reference/variables/assign) `:=`
* [if](/microbit/reference/logic/if)
* [for](/microbit/reference/loops/for)
* [while](/microbit/js/while)
* [break](/microbit/js/break)
* [forever](/microbit/reference/basic/forever)
* [in background](/microbit/reference/control/in-background)
* [function](/microbit/js/function)
* [return](/microbit/js/return)

### Maths

* arithmetic operators (`+`, `-`, `*`, `/`, mod) on [Numbers](/microbit/reference/types/number)
* comparison operators (such as `>`, `=`) on [Numbers](/microbit/reference/types/number)
* the [math](/microbit/js/math) library
* the [bits](/microbit/js/bits) library

### Logical

* [Boolean](/microbit/reference/types/boolean) values `true` and `false`
* Operations (`not`, `or`, `and`) on [Booleans](/microbit/reference/types/boolean)

### Strings

* [string functions](/microbit/reference/types/string-functions)

### Functions

* [create a function](/microbit/js/function)
* [function parameters](/microbit/js/functionparameters)
* [call a function](/microbit/js/call)

### Collections

* read the [collections tutorial](/microbit/js/collections)

### Custom object types

* see the [object types tutorial](/microbit/js/object-types)
* read the [object disclaimer](/microbit/js/object-disclaimer) if you're an advanced user

### Libraries

* [create and use libraries](/microbit/js/libraries)

### Documentation

* [comments](/microbit/js/comment)
* [markdown syntax](/microbit/js/markdown)

### ~

### ~column 

## BBC micro:bit functions

### Basic

* [clear screen](/microbit/reference/basic/clear-screen)
* [forever](/microbit/reference/basic/forever)
* [pause](/microbit/reference/basic/pause)
* [show leds](/microbit/reference/basic/show-leds)
* [show animation](/microbit/reference/basic/show-animation)
* [show number](/microbit/reference/basic/show-number)
* [show string](/microbit/reference/basic/show-string)

### LED

* [brightness](/microbit/reference/led/brightness)
* [fade in](/microbit/reference/led/fade-in)
* [fade out](/microbit/reference/led/fade-out)
* [plot](/microbit/reference/led/plot)
* [plot all](/microbit/reference/led/plot-all)
* [point](/microbit/reference/led/point)
* [screenshot](/microbit/functions/screenshot)
* [set display mode](/microbit/functions/set-display-mode)
* [set brightness](/microbit/reference/led/set-brightness)
* [stop animation](/microbit/reference/led/stop-animation)
* [toggle](/microbit/reference/led/toggle)
* [toggle all](/microbit/reference/led/toggle-all)
* [unplot](/microbit/reference/led/unplot)

### Input

* [acceleration](/microbit/reference/input/acceleration)
* [rotation](/microbit/functions/rotation)
* [button is pressed](/microbit/reference/input/button-is-pressed)
* [compass heading](/microbit/reference/input/compass-heading)
* [temperature](/microbit/reference/input/temperature)
* [running time](/microbit/reference/input/running-time)
* [on shake](/microbit/reference/input/on-gesture)
* [on button pressed](/microbit/reference/input/on-button-pressed)
* [on logo down](/microbit/functions/on-logo-down)
* [on logo up](/microbit/functions/on-logo-up)
* [on pin pressed](/microbit/reference/input/on-pin-pressed)
* [on screen down](/microbit/functions/on-screen-down)
* [on screen up](/microbit/functions/on-screen-up)
* [pin is pressed](/microbit/reference/input/pin-is-pressed)

### Image

* [create image](/microbit/reference/images/create-image)
* [clear](/microbit/reference/basic/clear-screen)
* [pixel](/microbit/reference/images/pixel)
* [plot frame](/microbit/reference/led/plot-frame)
* [plot image](/microbit/reference/led/plot-image)
* [scroll image](/microbit/reference/images/scroll-image)
* [show frame](/microbit/functions/show-frame)
* [set pixel](/microbit/reference/images/set-pixel)
* [show image](/microbit/reference/images/show-image)
* [width](/microbit/functions/width)

### Music

* [play note](/microbit/functions/play-note)
* [note](/microbit/functions/note)
* [ring](/microbit/reference/music/ring)

### Pins

* [digital read pin](/microbit/reference/pins/digital-read-pin)
* [digital write pin](/microbit/reference/pins/digital-write-pin)
* [analog read pin](/microbit/reference/pins/analog-read-pin)
* [analog write pin](/microbit/reference/pins/analog-write-pin)
* [analog set period](/microbit/reference/pins/analog-set-period)
* [analog pitch](/microbit/reference/pins/analog-pitch)
* [analog set pitch pin](/microbit/reference/pins/analog-set-pitch-pin)
* [servo write pin](/microbit/reference/pins/servo-write-pin)
* [servo set pulse](/microbit/reference/pins/servo-set-pulse)
* [map](/microbit/functions/map)

### Control

* [in background](/microbit/reference/control/in-background)
* [reset](/microbit/functions/reset)

### Devices

Functions in this category require to be connected to a remote device.

* [tell camera to](/microbit/reference/devices/tell-camera-to)
* [tell remote control to](/microbit/reference/devices/tell-remote-control-to)
* [raise alert to](/microbit/reference/devices/raise-alert-to)
* [on notified](/microbit/reference/devices/on-notified)

### Libraries

* [game library](/microbit/js/game-library)
* [serial library](/microbit/js/serial-library)

### ~

### ~column 

## Run

* [scripts in the browser](/microbit/js/simulator)
* [scripts on your BBC micro:bit](/microbit/device/usb)

## Debugging

* use the [serial library](/microbit/js/serial-library) to print data from your micro:bit on your computer
* learn about the [device error codes](/microbit/device/errors) that are displayed when sad faces occur

## Edit/Publish

* [the Touch Develop Editor](/microbit/js/editor)
* [publish a script](/microbit/js/publishing)

## Creating Tutorials

* [create a tutorial](/microbit/js/create-tutorials)
* [markdown syntax](/microbit/js/markdown)

### ~

