Script Preparation code:
AخA
 
window._x = { y: 4 };
window._z = null;
Tests:
  • Optional chaining, not null

     
    let a = typeof (_x === null || _x === void 0 ? void 0 : _x.y) === `number`;
  • Explicit null check, not null

     
    let a = _x != null && typeof _x.y === `number`;
  • Optional chaining, null

     
    let a = typeof (_z === null || _z === void 0 ? void 0 : _z.y) === `number`;
  • Explicit null check, null

     
    let a = _z != null && typeof _z.y === `number`;
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Optional chaining, not null
    Explicit null check, not null
    Optional chaining, null
    Explicit null check, null

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54
Chrome 108 on Windows
View result in a separate tab
Test name Executions per second
Optional chaining, not null 2379731.0 Ops/sec
Explicit null check, not null 3700637.8 Ops/sec
Optional chaining, null 6561355.0 Ops/sec
Explicit null check, null 6688356.0 Ops/sec