Perustietotyypit:Arvon käyttö, jonka avulla voit manipuloida muuttujaan tallennettua varsinaista arvoa. Perustyyppiarvot viittaavat yksinkertaisiin datasegmentteihin.
Perustietotyyppejä on viisi:Undefined、Null、String、Number、Boolean。
Viittaustyyppi:Kun kopioidaan objektin muuttujaa, manipuloitava objekti on kyseisen objektin viite, mutta kun lisätään ominaisuuksia objektiin, itse objektia muokataan. Viitetyyppiarvot ovat objekteja, jotka voivat koostua useista arvoista.
Viittauksia on useita tyyppejä:object, Array, RegExp, Date, Function, erityiset peruskääretyypit (String, Number, Boolean) ja monoliittisia sisäänrakennettuja objekteja (Global, Math).
Perus- ja referenssityyppiarvojen ero:
(1)Viitetyyppiarvot lisäävät ominaisuuksia ja metodeja, kun taas perustyyppiarvot eivät voi。
(2)Kun kopioidaan muuttujaarvoa, perustyyppi luo uuden arvon muuttujaobjektille ja kopioi sen uuteen muuttujaan. Siitä lähtien,Näiden kahden muuttujan mikään vaikutus ei vaikuta toiseen; Viitetyyppi on kopioida kopio muuttujan objektiin tallennetusta arvosta uuteen muuttujaan, mutta molempien muuttujien arvo osoittaa heapissa olevaan objektiin, eli ne viittaavat samaan objektiin.Yhden muuttujan muuttaminen vaikuttaa toiseen。
Viitaten tyyppiarvoihin, käyttäen taulukkoa esimerkkinä:
Välitä parametrit: Välitä arvo, kopioi funktion ulkopuolelta funktion sisäinen parametri (paikallinen muuttuja), kun paikallismuuttujaa käytetään, paikallismuuttujan muutos heijastuu funktion ulkopuolella, mutta tämä ei vaikuta funktion ulkopuoliseen arvoon.
Tietenkin esineitä käytettäessä voi olla vaikea ymmärtää:
Ilmiselvästi parametrit välitetään arvon mukaan, joten miksi luotu p-instanssi saa myös name-attribuutin lisättyä setName():ssa?
Koska obj ja p viittaavat samaan objektiin, obj pääsee samaan objektiin viitteen kautta, vaikka se välittyisi arvon kautta. Katso alla olevaa esimerkkiä, jotta asia selkeytyy.
Kirjoita uudelleen obj-objekti funktion sisällä, sillä tällä hetkellä obj-olio viittaa paikalliseen objektiin, ja ulkoinen p on edelleen alkuperäinen viite, joten se ei muutu.
Testityypit:
typeof:确定变量是字符串、数值、布尔值还是undefined的最佳工具。
instanceof: Selvitä, onko kyseessä objektityyppi.
|