![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, wziąłem się za naukę JS. I na samym początku mam taką małą zagwozdkę.
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" Ten post edytował Barcelona 3.01.2012, 12:50:36 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 248 Pomógł: 38 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
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(). Ten post edytował kaem 3.01.2012, 12:55:08 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki za pomoc
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:28 |