JavaScript
JavaScript Syntax Reference
This reference sheet covers a comprehensive range of JavaScript syntax and features. It should be helpful for both beginners and advanced users looking to review key concepts and functionalities.
Basic Syntax
Variables
var: Function-scoped or globally scoped.var x = 5;let: Block-scoped.
let y = 10;const: Block-scoped, constant reference.
const z = 15;
Data Types
Primitive Types: `string`, `number`, `boolean`, `null`, `undefined`, `symbol`, `bigint`.let str = "Hello";
let num = 42;
let bool = true;
let nothing = null;
let notDefined;
let sym = Symbol('sym');
let bigInt = 123n;
Operators
Arithmetic: `+`, `-`, `*`, `/`, `%`, `++`, `--`let sum = 1 + 2; let increment = sum++;Assignment: `=`, `+=`, `-=`, `*=`, `/=`, `%=`
let x = 10; x += 5; // x is now 15Comparison: `==`, `===`, `!=`, `!==`, `<`, `>`, `<=`, `>=` let isStrictEqual = (1 === '1'); // false Logical: `&&`, `||`, `!`
let and = true && false; // false let or = true || false; // true let not = !true; // false
Control Structures
Conditional Statements
if, else if, else
if (condition) {
// code
} else if (anotherCondition) {
// code
} else {
// code
}
Switch Statement
switch (expression) {
case value1:
// code
break;
case value2:
// code
break;
default:
// code
}
Loops
for
for (let i = 0; i < 10; i++) {
// code
}
while
while (condition) {
// code
}
do...while
do {
// code
} while (condition);
for...in
(Iterates over object properties)
for (let key in object) {
// code
}
for...of
(Iterates over iterable objects)
for (let value of iterable) {
// code
}
Functions
Function Declaration
function name(params) {
// code
}
Function Expression
const name = function(params) {
// code
};
Arrow Functions
const name = (params) => {
// code
};
Parameters and Arguments
Default Parameters
function name(param = defaultValue) {
// code
}
Rest Parameters
function name(...params) {
// code
}
Objects
Object Literals
let obj = {
key: value,
method() {
// code
}
};
Accessing Properties
obj.key; obj['key'];
Object Methods
Object.keys(obj); Object.values(obj); Object.entries(obj);
Object Destructuring
const { key1, key2 } = obj;
Arrays
Array Literals
let arr = [1, 2, 3];
Array Methods
arr.push(4); arr.pop(); arr.shift(); arr.unshift(0); arr.concat([5, 6]); arr.slice(1, 3); arr.splice(2, 1); arr.forEach(element => console.log(element)); arr.map(element => element * 2); arr.filter(element => element > 1); arr.reduce((acc, element) => acc + element, 0);
Array Destructuring
const [first, second, ...rest] = arr;
Advanced Topics
Classes
class MyClass {
constructor(param) {
this.param = param;
}
method() {
// code
}
static staticMethod() {
// code
}
}
let instance = new MyClass(param);
Inheritance
class ChildClass extends ParentClass {
constructor(param, childParam) {
super(param);
this.childParam = childParam;
}
childMethod() {
// code
}
}
Promises
let promise = new Promise((resolve, reject) => {
// code
});
promise.then(result => {
// handle result
}).catch(error => {
// handle error
}).finally(() => {
// code to run always
});
Async/Await
async function asyncFunction() {
try {
let result = await promise;
// handle result
} catch (error) {
// handle error
}
}
Modules
Export
export const name = value;
export function functionName() {
// code
}
export default functionName;
Import
import { name } from './module';
import functionName from './module';
Iterators and Generators
Iterators
let iterator = arr[Symbol.iterator](); console.log(iterator.next().value);
Generators
function* generatorFunction() {
yield 'value1';
yield 'value2';
return 'value3';
}
let generator = generatorFunction();
console.log(generator.next().value);
Proxy and Reflect
Proxy
let proxy = new Proxy(target, handler);
Reflect
Reflect.get(target, property, receiver); Reflect.set(target, property, value, receiver);
Map and Set
Map
let map = new Map(); map.set(key, value); let value = map.get(key); map.delete(key); map.has(key);
Set
let set = new Set(); set.add(value); set.delete(value); set.has(value);
WeakMap and WeakSet
WeakMap
let weakMap = new WeakMap();
WeakSet
let weakSet = new WeakSet();
Template Literals
let string = `String with ${expression}`;
Tagged Templates
function tag(strings, ...values) {
// code
}
tag`String with ${expression}`;
Spread and Rest Operators
let newArr = [...arr, 4, 5];
let newObj = { ...obj, newKey: 'newValue' };
function sum(...args) {
return args.reduce((acc, value) => acc + value, 0);
}
Error Handling
try...catch
try {
// code
} catch (error) {
// handle error
} finally {
// code to run always
}
Regular Expressions
let regex = /pattern/flags; let result = regex.test(string); let match = string.match(regex);