---
description: 🚧 under construction
---

# primitive

[JS](..) ⟩ [value]() ⟩ primitive

{% hint style="success" %}
<mark style="color:yellow;">**7**</mark> primitive data types:&#x20;

* <mark style="color:yellow;">**5**</mark>**&#x20;**<mark style="color:green;">**with**</mark> [<mark style="color:blue;">**wrapper**</mark>](prim/wrapper)：\
  [str](prim/str "mention") <mark style="color:yellow;">**/**</mark> [num](prim/num "mention") <mark style="color:yellow;">**/**</mark> [bigint](prim/bigint "mention") <mark style="color:yellow;">**/**</mark> [boolean](prim/boolean "mention") <mark style="color:yellow;">**/**</mark> [symbol](prim/symbol "mention")&#x20;
* <mark style="color:yellow;">**2**</mark>**&#x20;**<mark style="color:red;">**without**</mark> [<mark style="color:blue;">**wrapper**</mark>](prim/wrapper)：(:warning: [<mark style="color:red;">**can't call methods, no properties**</mark>](../err/type/cannot-read-properties-of-nullish)):exclamation:\
  [undefined](prim/undefined "mention") <mark style="color:yellow;">**/**</mark> [null](prim/null "mention").&#x20;
{% endhint %}

{% tabs %}
{% tab title="🔴 主題" %}
* <mark style="color:red;">**7**</mark>**&#x20;**<mark style="color:yellow;">**types of primitives**</mark>
  * [null](prim/null "mention") <mark style="color:yellow;">**/**</mark> [undefined](prim/undefined "mention")&#x20;
  * [boolean](prim/boolean "mention") <mark style="color:yellow;">**/**</mark> [num](prim/num "mention") <mark style="color:yellow;">**/**</mark> [str](prim/str "mention")
  * [bigint](prim/bigint "mention") <mark style="color:yellow;">**/**</mark> [symbol](prim/symbol "mention")
* <mark style="color:yellow;">**tools**</mark>
  * [isprimitive](type/type-functions/isprimitive "mention") <mark style="color:yellow;">**/**</mark> [isobject](type/type-functions/isobject "mention")
{% endtab %}

{% tab title="⭐️ 重點" %}
{% hint style="warning" %}
All primitives are <mark style="color:red;">**immutable**</mark>**.**
{% endhint %}

{% hint style="danger" %}
<mark style="color:purple;">**null**</mark> & <mark style="color:purple;">**undefined**</mark>&#x20;

* have <mark style="color:red;">**no object wrappers**</mark>, <mark style="color:orange;">**methods**</mark>/<mark style="color:orange;">**properties**</mark> <mark style="color:red;">**not available**</mark>.&#x20;
* hava <mark style="color:red;">**no**</mark> corresponding [prototype](func/prototype "mention") either.
{% endhint %}
{% endtab %}

{% tab title="👥 相關" %}
* 👉 [isprimitive](type/type-functions/isprimitive "mention")
* :star: [sloppy-equality](../grammar/op/relational/equal/sloppy-equality "mention") / [strict-equality](../grammar/op/relational/equal/strict-equality "mention")
{% endtab %}

{% tab title="📗 參考" %}
* [ ] JS.info ⟩ Native prototypes ⟩ [primitives](https://javascript.info/native-prototypes#primitives)
{% endtab %}

{% tab title="📘 手冊" %}
* [Primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)
{% endtab %}

{% tab title="🚧" %}
* [ ] Symbol's wrapper?
{% endtab %}
{% endtabs %}
