In this Hasty Treat, Scott and Wes talk about records and tuples in javascript — what they are, why you might want to use them, and more!

LogRocket - Sponsor

LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.

Show Notes

??? -

02:42 - Immutability

05:08 - Records

  • Immutable object
  • Syntax #{x: 1, y: 2}

05:56 - Tuples

  • Immutable array
  • Syntax #[1,2,3,4]

07:18 - For both

  • Referred to as a compound primitive

  • Can contain only primitives, not objects

  • They are compared deeply by their contents rather than their identity

    assert(#{ a: 1 } === #{ a: 1 }); assert(#[1, 2] === #[1, 2]); assert(#{ a: 1, b: 2 } === #{ b: 2, a: 1 });
  • Potential for optimizations

    • Optimizations for making deep equality checks fast
    • Optimizations for manipulating data structures
  • Works well with type systems

  • Better integration with the debugger

  • Accessed through normal record.scott object like syntax

13:39 - Stage 2

Links Tweet us your tasty treats!