Advanced JavaScript Series – Část 6.1:Všechno v JS je objekt? Odhaleno podivné chování JS, primitivní neprimitivní typy

Úvod-

  • V JavaScriptu existují dva typy datových typů, a to primitivní a neprimitivní datové typy.
  • Primitivní datové typy znamenají, že jsou neměnné a nelze je dále dělit, protože jsou nejmenší jednotkou, ve které mohou být data. Neprimitivní jsou opakem a mohou sestávat z různých primitivních typů.


Kredity – Deepali

Primitivní typ zahrnuje-

  1. Boolovská hodnota
  2. Nulé
  3. Nedefinováno
  4. Číslo
  5. BigInt
  6. Řetězec
  7. Symbol

Neprimitivní typy zahrnuje-

  1. Objekty
  • Určitě vás zajímá, co pole a funkce? No, v JavaScriptu jsou pole i funkce formou objektu, i když když uděláme typeof u funkce vrací function ale je to předmět. Pro lepší pochopení zkontrolujte tyto příklady.

Příklady-

Kód 1-

function a(){
  console.log("hello world")
}

a.hi = "hi"
console.log(a.hi)

Výstup 1-

"hi"

Zde můžete vidět, jak se funkce chová jako objekt. Jak jsme mohli do funkce přidat novou vlastnost.

Kód 2-

typeof []

Výstup 2-

'object'

Zde můžete vidět, jak pole vrací object jako jeho typ.

  • Ve skutečnosti se však vše v JavaScriptu chová jako objekt. Podívejte se na tuto dokumentaci a podívejte se, jak Number , String a mnoho dalších je uvedeno jako vestavěné objekty v JavaScriptu.
  • Podívejme se na to na příkladu.

Příklad-

Kód-

console.log(true.toString())

Výstup-

'true'

Je to proto, že v zákulisí k němu JS přidá obal a kód se změní na console.log(Boolean(true).toString()) a jak víme, vše se chová jako objekt, proto jsme schopni volat toString() funkce z Boolean .

Pokud je pole objektem, jak bychom rozlišili zapouzdřit v případě, že potřebujeme-

  • V JS je k dispozici mnoho různých funkcí, které nám pomáhají odlišit typy od jednoho druhého.
  • Například v JS byla představena nová funkce, která pomáhá odlišit pole od objektů.

Příklad-

Kód-

var x=[1,2,3]
Array.isArray(x)

Výstup-

true

Spojte se se mnou-

  • GitHub
  • LinkedIn

Dodatek-

  1. Pokročilá řada JavaScript – část 1 :Zákulisí (JavaScript Engine, ATS, Hidden Classes, Garbage Collection)
  2. Pokročilá řada JavaScript – část 2 :Kontext provádění a zásobník hovorů
  3. Pokročilá řada JavaScript – část 3 :Podivné chování JS, Strict Mode and Hoisting, Temporal Dead Zone
  4. Pokročilá řada JavaScript – část 4.1 :globální, funkční a blokový rozsah, lexikální vs dynamický rozsah
  5. Pokročilá řada JavaScript – část 4.2 :Scope Chains a jejich pracovní, lexikální a variabilní prostředí
  6. Pokročilá řada JavaScript – část 5 :Klíčové slovo IIFE &'this' v JS (např. triky), call(), apply(), bind(), Currying (Functional Prog)
  7. Pokročilá řada JavaScript – část 6.1 :Všechno v JS je objekt? Odhaleno podivné chování JS, primitivní neprimitivní typy
  8. Pokročilá řada JavaScript – část 6.2 :Pass by Value &Pass by Reference, Shallow &Deep Copy, Type Coercion
  9. Pokročilá řada JavaScript – část 7 :Občané první třídy a funkce vyššího řádu
  10. Pokročilá řada JavaScript – část 8 :The 2 Pillars~ Closures &Prototypal Dědičnost
  11. Pokročilá řada JavaScript – část 9 :Funkce konstruktoru, objektově orientované, new klíčové slovo

Reference-

  1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures