Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie i odejmowanie zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Barcelona
Witam, wziąłem się za naukę JS. I na samym początku mam taką małą zagwozdkę.

[JAVASCRIPT] pobierz, plaintext
  1. var zmienna = "37";
  2. zmienna = zmienna + 1 //zwróci "371"
  3. zmienna = zmienna - 1 //zwróci 36
[JAVASCRIPT] pobierz, plaintext


Czemu dodawanie działa inaczej niż odejmowanie ?

Uczę się z tego tutka doman.art.pl a ten przykład znajduje się w dziale "Konwersja danych"
Crozin
W JS operator "+" jest przeciążony dla zmiennych tekstowych i działa jako operator konkatenacji (łączenia) dwóch tekstów. Jeżeli jednym z operandów jest tekst, a drugim liczba, ta ostatnia zamieniana jest na tekst po czym oba są ze sobą łączone.
W przypadku operatora odejmowania zmienna tekstowa konwertowana jest na liczbę i od jej wartości odejmowana jest liczba 1.
kaem
Zadeklarowałeś zmienną jako typ string, a znak '+' służy w JS do łączenia stringów, więc do stringa "37" zostaje doczepiony znak '1'.
Jeśli chodzi o 'zmienna = zmienna - 1': ponieważ znak minusa nie jest znakiem specjalnym w JS, interpreter zakłada, że chcesz dokonać operacji odejmowania, dlatego też niejawnie dokonuje konwersji stringa do liczby, co w tym przypadku nie jest problemem. Spróbuj dać 'var zmienna = "jakis_string";' i to już się nie uda.
PS. jeśli chcesz wykonywać operacje arytmetyczne na liczbach zadeklarowanych jako string musisz użyć parseInt() albo parseFloat().
Barcelona
Ok, dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.