Blog
Some of my thoughts on designing and developing great software.
-
Hard and Symbolic Links
Links in Unix allow us to reference one file from another in our filesystem. Conceptually, these links are very similar to the aliases one might see in the macOS Finder. Although both may appear similar, there are some fundamental differences in the way Unix links behave. As we’ll see, these differences are entirely dependent on the types of links we choose to create.
Read More -
Tagged Template Literals
Starting in ECMAScript 2015, template literals have allowed developers to express and manipulate strings in powerful new ways. The template literal syntax provides convenient ways of representing multi-line strings and allows for embedded expressions. However, a more advanced form of the template literal syntax can enable even greater control.
Read More -
Object.is()
In JavaScript, there have traditionally been two ways of checking for equality: using the
Read More==
operator or the===
operator. These two operators are sufficient for most of the comparisons we perform, but there are certain edge cases that can produce some unexpected behavior. As a result, theObject.is()
method was introduced in ECMAScript 2015. -
Proxies
The
Read MoreProxy
object, introduced in ECMAScript 2015, allows us to intercept operations performed on objects. We can define custom behavior for these operations, allowing us to control exactly what occurs when one of these operations is performed. Let’s first look at how we might intercept calls to retrieve a property on an object. -
Get and Set
Originally introduced in ECMAScript 5.1, the
Read Moreget
andset
syntax never saw much widespread use in the JavaScript ecosystem. Only recently, with the introduction of theclass
syntax in ECMAScript 2015, have theget
andset
keywords seen a renewed interest among developers who need greater control over the properties in their objects. -
With Statement
The purpose of the
Read Morewith
statement in JavaScript is to provide a shorthand way of accessing multiple object properties. It allows you to essentially treat the properties of a given object as local variables within the statement. It’s intended to provide a nice convenience for developers and save some repetitive typing.