---
title: Functions List
---
![Unofficial JS Logo](//discourse-user-assets.s3.amazonaws.com/original/2X/0/0584980f425bfbbe1e14001557ff4f5bab8f61ec.jpg)

JavaScript (JS) is a lightweight, interpreted, programming language with first-class functions. Most well-known as the scripting language for Web pages, many non-browser environments also use it, such as <a href='https://nodejs.org' target='_blank' rel='nofollow'>node.js</a> and <a href='http://couchdb.apache.org/' target='_blank' rel='nofollow'>Apache CouchDB</a>. JS is a prototype-based, multi-paradigm, dynamic scripting language, supporting object-oriented, imperative, and declarative (e.g. functional programming) styles.

JavaScript runs on the client side of the web, which can be used to design / program how the web pages behave on the occurrence of an event. JavaScript is an easy to learn and also powerful scripting language, widely used for controlling web page behaviour.

Checkout <a href='https://developer.mozilla.org/en-US/docs/Web/JavaScript' target='_blank' rel='nofollow'>MDN's JavaScript Docs</a>, they are a great asset in learning.

We also have some great articles on our wiki:  
- <a href='http://forum.freecodecamp.com/t/advantages-and-disadvantages-of-javascript/14280' target='_blank' rel='nofollow'>Advantages and Disadvantages of JavaScript</a>  
---
**JavaScript Data Types:** 
---
- <a href='http://forum.freecodecamp.com/t/javascript-boolean/14311' target='_blank' rel='nofollow'>Booleans</a>  
---
**JavaScript Strings:** 
---
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-charat/15932' target='_blank' rel='nofollow'>String.prototype.charAt()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-charcodeat/15933' target='_blank' rel='nofollow'>String.prototype.charCodeAt()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-concat/15935' target='_blank' rel='nofollow'>String.prototype.concat()</a>  
- <a href='https://forum.freecodecamp.org/t/javascript-string-prototype-indexof/15936' target='_blank' rel='nofollow'>String.prototype.indexOf()</a>  
- <a href='http://forum.freecodecamp.com/t/string-prototype-lastindexof/15939' target='_blank' rel='nofollow'>String.prototype.lastIndexOf()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-match/15941' target='_blank' rel='nofollow'>String.prototype.match()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-replace/15942' target='_blank' rel='nofollow'>String.prototype.replace()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-slice/15943' target='_blank' rel='nofollow'>String.prototype.slice()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-split/15944' target='_blank' rel='nofollow'>String.prototype.split()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-substr/15945' target='_blank' rel='nofollow'>String.prototype.substr()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-substring/15947' target='_blank' rel='nofollow'>String.prototype.substring()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-tolowercase/15948' target='_blank' rel='nofollow'>String.prototype.toLowerCase()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-string-prototype-touppercase/15950' target='_blank' rel='nofollow'>String.prototype.toUpperCase()</a>  
---
**JavaScript Arrays:** 
---
- <a href='http://forum.freecodecamp.com/t/javascript-array-isarray/14284' target='_blank' rel='nofollow'>Array.isArray()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-concat/14286' target='_blank' rel='nofollow'>Array.prototype.concat()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-every/14287' target='_blank' rel='nofollow'>Array.prototype.every()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-filter/14289' target='_blank' rel='nofollow'>Array.prototype.filter()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-foreach/14290' target='_blank' rel='nofollow'>Array.prototype.forEach()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-indexof/14291' target='_blank' rel='nofollow'>Array.prototype.indexOf()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-join/14292' target='_blank' rel='nofollow'>Array.prototype.join()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-lastindexof/14293' target='_blank' rel='nofollow'>Array.prototype.lastIndexOf()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-map/14294' target='_blank' rel='nofollow'>Array.prototype.map()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-pop/14296' target='_blank' rel='nofollow'>Array.prototype.pop()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-push/14298' target='_blank' rel='nofollow'>Array.prototype.push()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-reduce/14299' target='_blank' rel='nofollow'>Array.prototype.reduce()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-reverse/14300' target='_blank' rel='nofollow'>Array.prototype.reverse()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-shift/14301' target='_blank' rel='nofollow'>Array.prototype.shift()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-slice/14302' target='_blank' rel='nofollow'>Array.prototype.slice()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-some/14304' target='_blank' rel='nofollow'>Array.prototype.some()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-sort/14306' target='_blank' rel='nofollow'>Array.prototype.sort()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-splice/14307' target='_blank' rel='nofollow'>Array.prototype.splice()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-tostring/14308' target='_blank' rel='nofollow'>Array.prototype.toString()</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-array-prototype-unshift/14309' target='_blank' rel='nofollow'>Array.prototype.unshift()</a>  
---
**JavaScript Loops:** 
---
- <a href='http://forum.freecodecamp.com/t/javascript-loops/14681' target='_blank' rel='nofollow'>Loops</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-while-loop/14668' target='_blank' rel='nofollow'>While Loop</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-do-while-loop/14662' target='_blank' rel='nofollow'>Do While Loop</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-for-loop/14666' target='_blank' rel='nofollow'>For Loop</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-for-in-loop/14665' target='_blank' rel='nofollow'>For In Loop</a>  
- <a href='http://forum.freecodecamp.com/t/javascript-for-of-loop/14671' target='_blank' rel='nofollow'>For Of Loop</a>

Checkout our other articles on JavaScript: <a href='https://www.freecodecamp.com/wiki' target='_blank' rel='nofollow'>https://www.freecodecamp.com/wiki</a>.
