JavaScript Reference
? : | var i = 3; console.log((i == 3) ? "three" : "not three"); |
three |
`${}` | var s = "World"; console.log(`Hello ${s}`); |
Hello World |
AJAX | [hello.txt] Hello [ajax.html] var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", "hello.txt", true); xmlhttp.send(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) console.log(xmlhttp.responseText); } |
Hello (only available on server) |
alert console.log |
alert("Hello"); console.log("Hello"); |
Hello in window Hello in console |
Array length |
var a = new Array("A", "B", "C", "D"); var a = ["A", "B", "C", "D"]; // another expression console.log(a.length); console.log(a[0]); console.log(a[a.length - 1]); |
4 A D |
async Promise await |
async function f() { var p = new Promise((resolve, reject) => { setTimeout(() => resolve("Hello"), 3000); }); var s = await p; console.log(s); } f(); |
Hello (shown in 3 seconds) |
call apply |
function f() { console.log("Hello"); } f.call(); f.apply(); |
Hello Hello |
charAt charCodeAt fromCharCode |
var s = "Hello"; console.log(s.charAt(4)); console.log(s.charCodeAt(4)); console.log(String.fromCharCode(111)); |
o 111 o |
childNodes nodeName firstChild lastChild |
<div id="x"><h1>1</h1><h2>2</h2><h3>3</h3></div> var c = document.getElementById("x").childNodes; for (var i = 0; i < c.length; i++) console.log(c[i].nodeName); var e = document.getElementById("x"); console.log(e.firstChild.nodeName); console.log(e.lastChild.nodeName); |
H1 H2 H3 H1 H3 |
class | class cuboid { constructor(length, width, height, volume) { this.length = length; this.width = width; this.height = height; this.volume = this.length * this.width * this.height; } } var c = new cuboid(5, 4, 3); console.log(c.volume); |
60 |
comment | // comment /* comment1 comment2 comment3 */ |
|
confirm prompt null |
var c = confirm("YES or NO?"); if (c == true) console.log("YES") else console.log("NO"); var p = prompt("YES or NO?", "YES"); if (p == "" || p == null) console.log("NULL") else console.log(p); |
e.g. YES and YES |
constructor | var a = new Array("A", "B", "C", "D"); if (a.constructor == Array) console.log("Array"); |
Array |
Date | var d = new Date(); console.log(d.getFullYear() + "-" + d.getMonth() + "-" + d.getDay()); |
2019-11-25 |
debugger | console.log("A"); debugger; console.log("B"); |
A if F12 is pressed |
document.addEventListener document.removeEventListener |
function f() { console.log("mouse moved"); document.removeEventListener("mousemove", f); } document.addEventListener("mousemove", f); |
mouse moved |
document.cookie toUTCString |
var d = new Date(); d.setTime(d.getTime() + 90 * 24 * 60 * 60 * 1000); // expire in 90 days document.cookie = "username=John Doe; expires=" + d.toUTCString() + "; path=/"; console.log(document.cookie); |
username=John Doe (only available on server) toUTCString = Wed, 29 Nov 2023 13:27:45 GMT |
document.createElement document.getElementById appendChild |
<div id="x">0</div> var i, e; for (i = 1; i <= 5; i++) { e = document.createElement("div"); document.getElementById("x").appendChild(e); e.id = i; document.getElementById(i).innerHTML = i; } |
0 1 2 3 4 5 |
document.onkeydown event.key event.keyCode |
document.onkeydown = function(event) { var s = event.key; console.log(s); var i = event.keyCode; console.log(i); } |
Enter 13 |
document.querySelector document.querySelectorAll |
<p class="x">1</p> <p class="x">2</p> <p class="x">3</p> document.querySelector(".x").innerHTML = "ONE"; var p = document.querySelectorAll(".x"); p[0].innerHTML = "one"; p[1].innerHTML = "two"; p[2].innerHTML = "three"; |
one (1 -> ONE -> one) two three |
document.write document.writeln |
H<script>document.write("ell");</script>o H<script>document.writeln("ell");</script>o |
Hello Hell o |
escape unescape encodeURI decodeURI encodeURIComponent decodeURIComponent |
console.log(escape("你好")); console.log(unescape("%u4F60%u597D")); console.log(encodeURI("你好")); console.log(decodeURI("%E4%BD%A0%E5%A5%BD")); console.log(encodeURIComponent("google.com/search?q=北京")); console.log(decodeURIComponent("google.com%2Fsearch%3Fq%3D%E5%8C%97%E4%BA%AC")); |
%u4F60%u597D 你好 %E4%BD%A0%E5%A5%BD 你好 google.com%2Fsearch%3Fq%3D%E5%8C%97%E4%BA%AC google.com/search?q=北京 |
eval | eval("console.log('" + "Hello" + "')"); |
Hello |
event.clientX event.clientY |
<body onclick="console.log(event.clientX + ', ' + event.clientY)"></body> |
e.g. 302, 286 |
export import |
[module.js] export function Hello() { console.log("Hello"); } [index.html] <script type="module"> import {Hello} from "./module.js"; Hello(); </script> |
Hello (only available on server) |
for continue |
var i; for (i = 1; i <= 3; i++) { if (i == 2) continue; console.log(i); } |
1 3 |
for/in | var i, a = new Array("A", "B", "C", "D"); for (i in a) console.log(a[i]); |
A B C D |
forEach | var a = new Array("A", "B", "C", "D"); a.forEach(f); function f(i) { console.log(i); } |
A B C D |
function return |
function f(i, j) { return i + j; } var k = f(2, 3); console.log(k); var f = (i, j) => i + j; // another expression var k = f(2, 3); console.log(k); |
5 5 |
getSelection | <textarea onselect="alert(window.getSelection())">Hello</textarea> <textarea onselect="alert(document.getSelection())">Hello</textarea> |
ll if "ll" is selected |
history | <button onclick="history.back()">back</button> <button onclick="history.forward()">forward</button> |
back forward |
if/else | var i = 3; if (i == 1) console.log("one") else if (i == 2) console.log("two") else if (i == 3) console.log("three") else console.log("greater than three"); |
three |
if/else | var i = 3; if (i == 1) console.log("one") else if (i == 2) console.log("two") else if (i == 3) console.log("three") else console.log("greater than three"); |
three |
includes | var a = new Array("A", "B", "C", "D"); console.log(a.includes("C")); |
true |
indexOf lastIndexOf search |
var s = "Hello", i, j, k; i = s.indexOf("l"); j = s.lastIndexOf("l"); k = s.search(/l/i); console.log(i); console.log(j); console.log(k); |
2 3 2 |
Infinity | var i = 1 / 0; console.log(i); |
Infinity |
isNaN | console.log(isNaN(5)); console.log(isNaN("Hello")); |
false true |
join split |
var a = new Array("A", "B", "C", "D"), s, b; s = a.join(" "); console.log(s); b = s.split(" "); console.log(b); |
A B C D ['A', 'B', 'C', 'D'] |
jQuery | <script src="jquery-3.6.1.slim.min.js"></script> <script> $(document).ready(function() { $("button#x").click(function() { console.log("Hello"); }); }); </script> <button id="x">Hello</button> |
Hello |
JSON | var cuboid = { length: 5, width: 4, height: 3 }, s, o; s = JSON.stringify(cuboid); console.log(s); o = JSON.parse(s); console.log(o); |
{"length":5,"width":4,"height":3} {length:5, width:4, height:3} |
localeCompare | var s1 = "abc", s2 = "xyz"; console.log(s1.localeCompare(s2)); var s1 = "xyz", s2 = "abc"; console.log(s1.localeCompare(s2)); |
-1 (s1 comes before s2) 1 (s1 comes after s2) |
localStorage sessionStorage |
var f; localStorage.setItem("pi", 3.14); f = localStorage.getItem("pi"); console.log(f); sessionStorage.setItem("pi", 3.14); f = sessionStorage.getItem("pi"); console.log(f); |
3.14 3.14 |
location.href window.open |
location.href = "https://www.google.com"; window.open("https://www.google.com", "", "width=300, height=300"); |
visit google in current window visit google in new window |
location.reload | <button onclick="location.reload()">Reload</button> |
reload |
Map | const m = new Map(); m.set("a", 1); m.set("b", 2); m.set("c", 3); console.log(m.get("b")); |
2 |
Math | console.log(Math.min(1, 5)); console.log(Math.max(1, 5)); console.log(Math.round(4.6)); console.log(Math.floor(4.6)); console.log(Math.ceil(4.6)); console.log(Math.random()); |
1 5 5 4 5 0.8361748718178987 |
navigator.clipboard then |
navigator.clipboard.writeText("Hello").then(function w() { console.log("Hello"); }); navigator.clipboard.readText().then(function r(text) { console.log(text); }); |
Hello Hello |
navigator.geolocation | if (navigator.geolocation) navigator.geolocation.getCurrentPosition(f); function f(position) { console.log(position.coords.latitude); console.log(position.coords.longitude); } |
38.855868 115.384835 |
navigator.onLine | if (navigator.onLine) console.log("online") else console.log("offline"); |
online |
navigator.userAgent | var s = navigator.userAgent; console.log(s); var a = s.match(/Chrome\/\d+/); if (a != null) console.log(a[0].replace(/\//, " v")); |
... Chrome/103.0.5060.114 ... Chrome v103 |
Number String typeof |
var i, s; i = Number("3"); s = String(3); console.log(typeof i); console.log(typeof s); |
number string |
object | var cuboid = { length: 5, width: 4, height: 3, volume: function() { return this.length * this.width * this.height; } } console.log(cuboid.length); console.log(cuboid.volume()); |
5 60 |
outerHTML innerHTML |
<div id="x">Hello</div> console.log(document.getElementById("x").outerHTML); console.log(document.getElementById("x").innerHTML); |
<div id="x">Hello</div> Hello |
parseInt parseFloat |
console.log(parseInt("3.99$")); console.log(parseInt("$3.99")); console.log(parseFloat("3.99$")); console.log(parseFloat("$3.99")); |
3 NaN 3.99 NaN |
prototype | String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } var s = " Hello "; s = s.trim(); console.log("|" + s + "|"); |
|Hello| |
push pop |
var a = new Array("A", "B", "C"); a.push("D"); console.log(a); var b = new Array("A", "B", "C", "D"); b.pop(); console.log(b); |
['A', 'B', 'C', 'D'] ['A', 'B', 'C'] |
RegExp test exec match |
var re = new RegExp("^[A-z]+$"); // another expression: var re = /^[A-z]+$/; console.log(re.test("Hello")); console.log(re.test("Hell8")); console.log(re.exec("Hello")); console.log(re.exec("Hell8")); console.log("Hello".match(re)); console.log("Hell8".match(re)); |
true false ['Hello' ...] null ['Hello' ...] null |
replace replaceAll |
var s = "Hekko"; console.log(s.replace("k", "l")); console.log(s.replaceAll("k", "l")); |
Helko Hello |
screen.width screen.height screen.availWidth screen.availHeight |
console.log(screen.width); console.log(screen.height); console.log(screen.availWidth); console.log(screen.availHeight); |
1366 768 1366 728 |
script | [include.js] console.log("Hello"); [index.html] <script src="include.js"></script> |
Hello |
Set | var s = new Set(); s.add("h"); s.add("e"); s.add("l"); // valid adding s.add("l"); // invalid adding s.add("o"); console.log(s); console.log(s.has("o")); console.log(s.has("x")); |
Set (4) {'h', 'e', 'l', 'o'} true false |
setAttribute getAttribute removeAttribute |
<button id="x">Hello</button> var e, t; e = document.getElementById("x"); e.setAttribute("disabled", "true"); console.log(e.getAttribute("disabled")); t = setTimeout("e.removeAttribute('disabled')", 5000); |
true |
setInterval clearInterval |
var i = setInterval("console.log('Hello')", 10000); <button onclick="clearInterval(i)">stop</button> |
display "Hello" every 10 seconds until press "stop" |
setTimeout clearTimeout |
var t = setTimeout("console.log('Hello')", 10000); <button onclick="clearTimeout(t)">stop</button> |
display "Hello" in 10 seconds if don't press "stop" |
shift unshift |
var a = new Array("A", "B", "C", "D"); a.shift(); console.log(a); var b = new Array("B", "C", "D"); b.unshift("A"); console.log(b); |
['B', 'C', 'D'] ['A', 'B', 'C', 'D'] |
sort reverse |
var a = new Array("D", "C", "B", "A"), b; b = a.sort(); console.log(b); b.reverse(); console.log(b); |
['A', 'B', 'C', 'D'] ['D', 'C', 'B', 'A'] |
splice | var a = new Array("A", "B", "D"); // insert a.splice(2, 0, "C"); console.log(a); var a = new Array("A", "B", "X", "C", "D"); // delete a.splice(2, 1); console.log(a); var a = new Array("A", "B", "X", "D"); // replace a.splice(2, 1, "C"); console.log(a); |
['A', 'B', 'C', 'D'] ['A', 'B', 'C', 'D'] ['A', 'B', 'C', 'D'] 0 & 1 = deletion count |
startsWith endsWith |
var s = "Hello"; console.log(s.startsWith("H")); console.log(s.endsWith("o")); |
true true |
substr substring slice |
var s = "Hello", i, j; i = s.indexOf("e"); j = s.indexOf("o"); console.log(s.substr(i, 4)); console.log(s.substring(i, j)); console.log(s.slice(i, j)); |
ello ell ell |
switch break |
var i = 3; switch (i) { case 1: console.log("one"); break; case 2: console.log("two"); break; case 3: console.log("three"); break; default: console.log("greater than three"); } |
three |
this | <button onclick="this.style.display='none'">disappear</button> |
disappear |
throw | var i = 4; try { if (i > 3) throw "greater than three"; } catch(error) { console.log(error); } finally { i = 3; } |
greater than three |
toFixed toPrecision |
var i = 9.6573; console.log(i.toFixed(2)); console.log(i.toPrecision(3)); |
9.66 9.66 |
toLowerCase toUpperCase |
var s1 = "HELLO"; console.log(s1.toLowerCase()); var s2 = "hello"; console.log(s2.toUpperCase()); |
hello HELLO |
toString | var i = 123; console.log(i.toString(2)); console.log(i.toString(8)); console.log(i.toString(10)); console.log(i.toString(16)); |
1111011 173 123 7b |
trim trimStart trimEnd |
var s = " Hello "; console.log("|" + s.trim() + "|"); console.log("|" + s.trimStart() + "|"); console.log("|" + s.trimEnd() + "|"); |
|Hello| |Hello | | Hello| |
try catch finally |
try { display("Hello"); } catch(error) { console.log(error.message); } finally { console.log("Hello"); } |
display is not defined Hello |
undefined | var i; if (i === undefined) console.log("i is undefined"); |
i is undefined |
use strict | "use strict"; pi = 3.14; |
pi is not defined |
var let const |
var i = 3; // global console.log(i); { let i = 5; // local console.log(i); } console.log(i); const pi = 3.14; console.log(pi); |
3 5 3 3.14 |
void | <a href="javascript:void(0)">do nothing</a> |
do nothing |
WebSocket | var ws = new WebSocket("https://echo.websocket.org"); ws.onopen = function(event) { ws.send("Hello"); }; ws.onmessage = function(event) { console.log(event.data); ws.close(); }; |
Hello (sent message) Request served by 1781505b56ee58 (received message) |
while do/while |
var i = 1, j = 1; while (i <= 3) { console.log(i); i++; } do { console.log(j); j++; } while (j <= 3); |
1 2 3 1 2 3 |
with | with (Math) { console.log(floor(4.6)); console.log(ceil(4.6)); } |
4 5 |