Tipul de conversie, JavaScript
conversie explicită
Convertirea la
Funcția Number () convertește valorile în conformitate cu următoarele reguli:
- Valorile booleene adevărat și fals convertit la 1 și, respectiv, 0.
- Numerele returnate neschimbate.
- Valoarea 0 este convertită în null.
- Valoarea nedefinită este convertit la NaN.
Pentru siruri de caractere, se aplică reguli speciale:
- Dacă șirul conține numai numere cu inițiale „plus“ sau „minus“ sau fără semn, este întotdeauna convertit la un număr zecimal.
- Dacă șirul conține o valoare în virgulă mobilă în formatul corect, acesta este convertit la numărul în virgulă mobilă corespunzătoare.
- Dacă șirul conține o valoare hexazecimală în formatul corect, este convertit în întregul corespunzător.
- Dacă șirul este gol, acesta este convertit la 0 ° C.
- Dacă șirul conține ceva diferit față de versiunile anterioare, acesta este convertit la NaN.
Pentru obiectele numita metoda valueOf (), iar valoarea returnată este convertit la ele în conformitate cu normele anterioare. În cazul în care această conversie este într-o metodă NaN, numită toString () și regulile de linii de conversie în număr.
Conversia în linie
String Function () returnează întotdeauna șirul indiferent de valoarea obținută. Acesta funcționează după cum urmează:
- În cazul în care valoarea are o toString este invocata () metoda (fara argumente), iar apoi returnează rezultatul.
- „Null“ șir de caractere este returnat la nulul de valoare.
- „Nedefinită“ șir de caractere este returnat pentru valoarea nedefinită.
Conversia în valori logice
Boolean () funcția convertește valoarea în echivalent logic. Acesta funcționează după cum urmează:
- Următoarele valori, ca urmare a valorii de conversie dată false: nedefinite, nule, 0, -0, NaN „“.
- Toate celelalte valori din conversia rezultat o valoare adevărată.
Conversia valori simple la obiecte
Pentru a converti valorile simple obiecte folosite în constructori booleene (), număr (), String ():
Conversia obiecte la valori simple
Toate obiectele moștenesc două conversie metodă: toString () și valueOf ().
toString () returneaza o reprezentare string a obiectului. În mod implicit, nu e nimic deosebit întoarce interesante:
Multe tipuri au o versiune mai specializată a metodei toString (). De exemplu, toString () metoda convertește toate elementele de matrice tipuri de matrice de siruri și combină rezultatele într-un singur șir, introducând virgulă între ele.
Metodă Activitate valueOf () care nu este definit atât de clar: se presupune că el trebuie să convertească obiect pentru a reprezenta sensul său simplu, în cazul în care există o astfel de valoare. Obiectele în natură sunt valori integrale, iar cele mai multe obiecte care nu pot fi reprezentate ca o singură valoare simplă, astfel încât metoda implicită valueOf () returnează o valoare simplă, iar obiectul (o referire la ea):
- În cazul în care obiectul are o metoda toString (), interpretul provoacă. Dacă se returnează o valoare simplă, interpretul convertește valoarea într-un șir de caractere (dacă nu este un șir de caractere), și returnează rezultatul conversiei.
- În cazul în care obiectul nu are metoda toString () și această metodă nu returnează o valoare simplă, controalele interpret pentru metoda valueOf (). Dacă această metodă este definită, interpretul provoacă. Dacă se returnează o valoare simplă, interpretul convertește valoarea într-un șir de caractere (dacă nu este un șir de caractere), și returnează rezultatul conversiei.
- În caz contrar, interpretul constată că nu toString () sau valueOf () nu dau o valoare simplă și aruncă o TypeError.
Când convertiți un obiect în numărul de coajă face același lucru, dar primele încercări de a aplica metoda valueOf ():
- Dacă obiectul are valueOf () returneaza o valoare simplă, convertiții interpret (dacă este necesar) valoarea numărului și returnează rezultatul.
- În cazul în care obiectul nu are valueOf () metoda sau metoda nu returnează o valoare simplă, controalele interpret pentru metoda toString (). Dacă obiectul are toString () returneaza o valoare simplă, un interpret efectuează conversia și returnează valoarea rezultată.
- În caz contrar, interpretul constată că nu toString () sau valueOf () nu dau o valoare simplă și aruncă o TypeError.
toString () și valueOf () sunt disponibile pentru citire și scriere, astfel încât să puteți suprascrie conversia unei simple valori în obiecte: