import { Meta } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/en/functional-basic/Functions/isObject - Check if value is an object'/>

# `isObject`

A foundational utility explicitly formulated for performing safe, immediate checks regarding whether a given argument legitimately constitutes an object.

In pure JavaScript logic, `typeof null` fundamentally yields the notorious `'object'` string result, inadvertently instigating phantom bugs. `isObject` expertly navigates around this notorious quirk by initiating a truthy checkpoint (`Boolean(value)`) completely shielding execution paths from `null` or undefined pitfalls prior to affirming the exact object type condition. Take caution to realize that structural arrays (`[]`) count as standard objects under JS protocols, so they successfully yield `true` here.

**Parameters:**
- `value: T` — Any inclusive subject evaluation target variable.

**Returns:**
`boolean` — Yields `true` solely if the entity demonstrates fundamental object classification (including collections like arrays). Defaults to generating `false` outputs across null bindings, isolated variables, primitives, and actionable functions. Acts simultaneously as a strict TypeGuard reducing typings to `Record<any, any>`.

```typescript
import { isObject } from '@dxtmisha/functional-basic'

console.log(isObject({ id: 1 })) // true
console.log(isObject([1, 2, 3])) // true (Arrays are strictly typed as objects underlying JS!)

// Safeguarded boundaries rejecting familiar JS snags
console.log(isObject(null)) // false
console.log(isObject(100)) // false
console.log(isObject('string')) // false
```
