Javascript datatypes

From wikinotes

Documentation

MDN: builtin datatypes https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects

Literal Types

Literals are types that have syntax outlined for them.

// ====
// text
// ====
'foobar'         // string
/[0-9]+/         // regexp


// ==========
// templating
// ==========
`hello ${name}`

`multiline
string`


// =======
// numbers
// =======
true, false      // boolean
123              // number
123.123          // float
0o77, 0O77, 077  // octal number
Ox1123           // hex number
0b0011           // binary number

['one', two']    // array
{a: 1, b: 2}     // object literal

Type Conversion

Number("123");
String(123);

Array.from(document.querySelectAll("li"));

Primitive Types

undefined

All declared variables are undefined until they are assigned a value.

undefined

null

null

String

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

  • strings are unicode
'hello'.length;                 // 5
'foo bar'.replace('bar', 'baz') // 'foo baz'

Symbol

https://developer.mozilla.org/en-US/docs/Glossary/Symbol

Essentially a global immutable string.

Numbers

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

Numbers must be smaller than Number.MAX_SAFE_INTEGER

Number("1")         // convert to number
Number("abc")       // returns NaN if unable to convert
123                 //
123.0               //
0o755 0755          // 755 in octal
parseInt('101', 2)  // binary to decimal
parseInt('644', 8)  // octal to decimal

BigInt

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#bigint_type

Arbitrary precision numbers. Numbers larger than Number.MAX_SAFE_INTEGER.

Boolean

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

// false
Boolean('')
Boolean(0)

// true

Collections

Arrays

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

There are a few typed variations of Arrays

Array

// Integer Arrays -- 8/16/32 bit variations
Int8Array
Uint8Array

// Float Arrays
Float32Array
Float64Array

// BigInt Arrays
BigInt64Array
BigUint64Array
let animals = ["cat", "dog", "monkey", "bird"];
animals.slice(2, 4)                                // ["monkey", "bird"]
animals.filter((i) => { return i.includes("o") })  // ["dog", "monkey"]
animals.map(x => "--" + x)                         // ["--cat", "--dog", ..]
animals.map(myFunction())                          // 
animals.shift()                                    // "cat"
animals.pop()                                      // "bird"

Sets

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set

Objects

https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects

Objects are the superclass of most objects in javascript.
It behaves similarly to hashes, hashmaps, dictionaries in other languages except you can also bind methods to it.

// emtpy object
var obj = {}
var obj = new Object()

obj['key'] = 'value'

See much more in javascript objects.

Maps

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

Similar to objects, but ordered, iterable, and keys can be any datatype.


let students = new Map()
let students = new Map([[1, 'one'], [2, 'two']])
let students = new Map(students)

students.set('Alex', 1)
students.get('Alex')     // 1

students.has('Alex')     // true/false
students.size            // length, count, number of elements

Iteration

for (let [key, val] of students) { ... }

students.forEach(function(val, key) { ... })

Complex Types

Date

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Javascript dates contain both dates and time.

new Date(1970, 1, 1)
new Date(628021800000)  // epoch timestamp
Date.now()
Date.UTC()