Skip to content

Expression Quick Reference

Audience: Users writing expressions in applications powered by expr-eval.

This is a quick reference card. For detailed documentation, see Expression Syntax.

Arithmetic

Expression Result Description
2 + 3 5 Addition
10 - 4 6 Subtraction
3 * 4 12 Multiplication
15 / 3 5 Division
10 % 3 1 Remainder (modulo)
2 ^ 3 8 Exponentiation
5! 120 Factorial
-x negated Negation

Comparison

Expression Result Description
5 > 3 true Greater than
5 >= 5 true Greater than or equal
3 < 5 true Less than
3 <= 3 true Less than or equal
5 == 5 true Equal
5 != 3 true Not equal
"a" in ["a", "b"] true In array (may be disabled)

Logic

Expression Result Description
true and false false Logical AND
true or false true Logical OR
not true false Logical NOT

Conditionals

Expression Result Description
x > 0 ? "yes" : "no" depends on x Ternary (if-then-else)
x ?? 0 x or 0 Coalesce (null/undefined fallback)

Math Functions

Function Example Result
abs(x) abs(-5) 5
round(x) round(3.7) 4
floor(x) floor(3.7) 3
ceil(x) ceil(3.2) 4
sqrt(x) sqrt(16) 4
min(a, b, ...) min(3, 1, 4) 1
max(a, b, ...) max(3, 1, 4) 4
clamp(x, min, max) clamp(15, 0, 10) 10
pow(x, y) pow(2, 3) 8
sin(x) sin(PI / 2) 1
cos(x) cos(0) 1
log(x) log(E) 1
log10(x) log10(100) 2

String Functions

Function Example Result
length(s) length("hello") 5
toUpper(s) toUpper("hi") "HI"
toLower(s) toLower("HI") "hi"
trim(s) trim(" x ") "x"
left(s, n) left("hello", 2) "he"
right(s, n) right("hello", 2) "lo"
contains(s, sub) contains("hello", "ell") true
startsWith(s, sub) startsWith("hello", "he") true
endsWith(s, sub) endsWith("hello", "lo") true
replace(s, old, new) replace("aa", "a", "b") "bb"
split(s, delim) split("a,b", ",") ["a", "b"]

Array Functions

Function Example Result
count(arr) count([1, 2, 3]) 3
indexOf(val, arr) indexOf(2, [1, 2, 3]) 1
join(sep, arr) join("-", [1, 2]) "1-2"
unique(arr) unique([1, 1, 2]) [1, 2]
map(arr, fn) map([1, 2], x => x * 2) [2, 4]
filter(arr, fn) filter([1, 2, 3], x => x > 1) [2, 3]
find(arr, fn) find([1, 5, 2], x => x > 3) 5
fold(arr, init, fn) fold([1, 2, 3], 0, (a, x) => a + x) 6
some(arr, fn) some([1, 5], x => x > 3) true
every(arr, fn) every([1, 2], x => x > 0) true

Object Functions

Function Example Result
keys(obj) keys({a: 1, b: 2}) ["a", "b"]
values(obj) values({a: 1, b: 2}) [1, 2]
merge(o1, o2) merge({a: 1}, {b: 2}) {a: 1, b: 2}

Type Checking

Function Description
isNumber(v) Returns true if v is a number
isString(v) Returns true if v is a string
isArray(v) Returns true if v is an array
isObject(v) Returns true if v is an object
isBoolean(v) Returns true if v is a boolean
isNull(v) Returns true if v is null
isUndefined(v) Returns true if v is undefined

Constants

Constant Value
PI 3.14159...
E 2.71828...
true Boolean true
false Boolean false

Array Literals

[1, 2, 3]
["a", "b", "c"]
[1, "mixed", true, [nested]]

Object Literals

{a: 1, b: 2}
{name: "John", age: 30}
{nested: {x: 1, y: 2}}

Property Access

user.name           // Object property
user.address.city   // Nested property
items[0]            // Array index
items[0].name       // Combined

Arrow Functions

x => x * 2                    // Single parameter
(x, y) => x + y               // Multiple parameters
(acc, x) => acc + x           // For fold/reduce

Variables (if enabled)

x = 5; x * 2                  // Assignment, then use
fn = x => x * 2; fn(3)        // Function assignment