Benefits of ES6 Reflect API : <p>I've been working on upgrading some code to use ES6 syntax. I had the following line of code:</p>

<p><code>delete this._foo;</code></p>

<p>and my linter raised a suggestion to use:</p>

<p><code>Reflect.deleteProperty(this, '_foo');</code> </p>

<p>You can find the documentation for this method <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty" rel="noreferrer">here</a>.</p>

<p>The MDN docs state:</p>

<blockquote>
  <p>The Reflect.deleteProperty method allows you to delete a property on
  an object. It returns a Boolean indicating whether or not the property
  was successfully deleted. It is almost identical to the non-strict
  delete operator.</p>
</blockquote>

<p>I understand that the <code>delete</code> keyword does not return a value indicating success, but it is much less verbose.</p>

<p>If I'm not dependent on the success/failure of <code>delete</code> is there any reason to favor <code>Reflect.deleteProperty</code>? What does it mean that <code>delete</code> is non-strict?</p>

<p>I feel like a lot of the use cases for the <code>Reflect</code> API are for resolving exceptional cases and/or providing better conditional flow, but at the cost of a much more verbose statement. I'm wondering if there's any benefit to use the <code>Reflect</code> API if I'm not experiencing any issues with my current usages.</p>
