Põhilised andmetüübid:Väärtuse ligipääs, mis võimaldab manipuleerida muutujas salvestatud tegelikku väärtust. Baastüübi väärtused viitavad lihtsatele andmesegmentidele.
On viis põhilist andmetüüpi:Undefined、Null、String、Number、Boolean。
Viite tüüp:Objekti muutuja kopeerimisel on manipuleeritav objekti viide, kuid omaduste lisamisel on manipuleeritav tegelik objekt. Viitetüübi väärtused on objektid, mis võivad koosneda mitmest väärtusest.
Viiteid on mitut tüüpi:object, Array, RegExp, Date, Function, spetsiaalsed põhilised wrapperi tüübid (String, Number, Boolean) ja monoliitsed sisseehitatud objektid (Global, Math).
Baas- ja viitetüübi väärtuste erinevuse kohta:
(1)Viitetüübi väärtused lisavad omadusi ja meetodeid, samas kui baastüübi väärtused ei saa。
(2)Muutuja väärtuse kopeerimisel loob baastüüp muutuja objektile uue väärtuse ja kopeerib selle uude muutujasse. Sellest ajast peale,Ükski kahe muutuja tegevus ei mõjuta teist; Viitetüüp on kopeerida muutuja objektis salvestatud väärtuse koopia uuele muutujale, kuid mõlema muutuja väärtus viitab kuhjas salvestatud objektile, st nad viitavad tegelikult samale objektile.Ühe muutuja muutmine mõjutab teist。
Viidates tüübi väärtustele, kasutades näiteks massiivi:
Parameetrite edastamine: Edasta väärtus, kopeeri väärtus väljaspool funktsiooni funktsiooni sees olevale parameetrile (lokaalmuutuja), kui lokaalset muutujat töödeldakse, kajastub lokaalmuutuja muutus väljaspool funktsiooni, kuid see ei mõjuta väärtust väljaspool funktsiooni.
Loomulikult võib objektide kasutamisel olla raske mõista:
Ilmselgelt edastatakse parameetrid väärtuse järgi, miks siis loodud p eksemplarile lisatakse ka name atribuut setName()-s?
Kuna obj ja p viitavad samale objektile, pääseb obj samale objektile ligi viite kaudu, isegi kui see edastatakse väärtuse kaudu. Vaata allolevat näidet, et see oleks selge.
Kirjuta obj objekt funktsiooni sees ümber, sel hetkel viitab objekt lokaalsele objektile ja välimine p on endiselt algne viide, seega see ei muutu.
Testide tüübid:
typeof:确定变量是字符串、数值、布尔值还是undefined的最佳工具。
instanceof: Määra, kas tegemist on objektitüübiga.
|