<!--
title: Strict null checks
domain: runtimes
topic: Null Handling
language: JavaScript
source: facebook/yoga
updated: 2015-10-07
url: https://awesomereviewers.com/reviewers/yoga-strict-null-checks/
-->

Use explicit strict equality checks when testing for null or undefined values. Prefer `x === undefined` over `typeof x === 'undefined'` when the variable is known to exist. When checking for both null and undefined, use `x == null` (loose equality) as it covers both cases, or check each explicitly with `x === null || x === undefined`. Avoid using the `||` operator for fallback values when legitimate falsy values (like 0, false, or empty strings) are expected, as they will incorrectly trigger the fallback.

```javascript
// Good - explicit undefined check
if (value !== undefined) {
  return value;
}

// Good - covers both null and undefined
if (value != null) {
  return value;
}

// Bad - unnecessary typeof when variable exists
if (typeof value !== 'undefined') {
  return value;
}

// Bad - loses legitimate falsy values
return node.style.marginTop || node.style.margin; // 0 becomes fallback value

// Good - explicit existence check
return 'marginTop' in node.style ? node.style.marginTop : node.style.margin;
```
