Safely access a nested property in an object using a dot notation path
The object to access
The path to the property, e.g. 'a.b.c' or 'a[0].b.c'
Optional
The default value to return if the property doesn't exist
The value at the path or the default value
Safely access a nested property in an object using a dot notation path