Ú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-
- Boolovská hodnota
- Nulé
- Nedefinováno
- Číslo
- BigInt
- Řetězec
- Symbol
Neprimitivní typy zahrnuje-
- 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
Dodatek-
- Pokročilá řada JavaScript – část 1 :Zákulisí (JavaScript Engine, ATS, Hidden Classes, Garbage Collection)
- Pokročilá řada JavaScript – část 2 :Kontext provádění a zásobník hovorů
- Pokročilá řada JavaScript – část 3 :Podivné chování JS, Strict Mode and Hoisting, Temporal Dead Zone
- Pokročilá řada JavaScript – část 4.1 :globální, funkční a blokový rozsah, lexikální vs dynamický rozsah
- Pokročilá řada JavaScript – část 4.2 :Scope Chains a jejich pracovní, lexikální a variabilní prostředí
- Pokročilá řada JavaScript – část 5 :Klíčové slovo IIFE &'this' v JS (např. triky), call(), apply(), bind(), Currying (Functional Prog)
- Pokročilá řada JavaScript – část 6.1 :Všechno v JS je objekt? Odhaleno podivné chování JS, primitivní neprimitivní typy
- Pokročilá řada JavaScript – část 6.2 :Pass by Value &Pass by Reference, Shallow &Deep Copy, Type Coercion
- Pokročilá řada JavaScript – část 7 :Občané první třídy a funkce vyššího řádu
- Pokročilá řada JavaScript – část 8 :The 2 Pillars~ Closures &Prototypal Dědičnost
- Pokročilá řada JavaScript – část 9 :Funkce konstruktoru, objektově orientované,
new
klíčové slovo
Reference-
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures