• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podstawy JavaScript

Object Storage Arubacloud
0 głosów
420 wizyt
pytanie zadane 16 lipca 2018 w JavaScript przez Dudman Nowicjusz (180 p.)

        var liczba;
		var liczba2;
		var bool= true;
		
		liczba= document.getElementById("pole").value;
		liczba2= document.getElementById("pole2").value;
		
		if(liczba<0);
		else if(liczba>0);
		else if(liczba=="0");
		else bool=false;
		if(liczba2<0);
		else if(liczba2>0);
		else if(liczba2=="0");
		else bool=false;
		
		if(bool==true)
		{
		
		var większa;
		var mniejsza;
		if(liczba2<liczba)
		{
			wieksza=liczba;
			mniejsza=liczba2;
		}
		else
		{
			wieksza=liczba2;
			mniejsza=liczba;
		}
		
		var liczby= "";
		
		for(i=mniejsza;i<=wieksza;i++)
		{
			liczby = liczby + i + " ";
		}
		
		document.getElementById("wynik").innerHTML= liczby;
		}
		else document.getElementById("wynik").innerHTML= "Wpisz liczbę";

Witam!

Oto mój kod JS. Na stronie pokazują się dwa miejsca na liczby oraz jeden przycisk. Przycisk aktywuje kod JS, który sprawdza czy w polach są liczby i wypisuje on wszystkie liczby od liczby mniejszej do większej.

Kod działa jeśli wpiszemy np.: 4 i 9 to wynik będzie: 4 5 6 7 8 9

Problem polega na tym, że jeśli wpiszemy np.:  5 i 15 to wynik wyskakuje 15. Natomiast jeśli wpiszemy np.:10 i 15 to wynik wyskoczy poprawny.

Nie rozumiem dlaczego tak się dzieje. Proszę o odpowiedź.

komentarz 16 lipca 2018 przez pablop76 VIP (123,120 p.)
edycja 16 lipca 2018 przez pablop76

 
if(liczba<0);
else if(liczba>0);
else if(liczba=="0");
else bool=false;
if(liczba2<0);
else if(liczba2>0);
else if(liczba2=="0");
else bool=false;

Jak to rozumiesz?

Albo to.

if(bool==true)
{
 
var większa;
var mniejsza;

 

3 odpowiedzi

0 głosów
odpowiedź 16 lipca 2018 przez profesorek96 Szeryf (91,420 p.)
Poczzytaj o różnicy pomiędzy ''==" a "===".

https://poznajprogramowanie.pl/operatory-porownania-jezyku-javascript/
komentarz 16 lipca 2018 przez Dudman Nowicjusz (180 p.)
Mógłbyś napisać jaki błąd popełniłem?
komentarz 16 lipca 2018 przez Kondzio Mądrala (5,230 p.)
edycja 16 lipca 2018 przez Kondzio

Najlepiej jakbyś wrzucił działający kod na stronke typu https://jsfiddle.net/ bo nie rozumiem jak taki kod w ogóle może Ci działać ;) [chyba coś źle wkleiłeś]. Dodatkowo nie wstawiaj polskich znaków do zmiennych

 

@edit eh przecież jsfiddle sam się tu pcha laugh jednak gdybyś podał całego htmla byłoby zawsze trochę łatwiej zdiagnozować

0 głosów
odpowiedź 16 lipca 2018 przez Kondzio Mądrala (5,230 p.)

Zobacz działanie zamieniając 

liczba= document.getElementById("pole").value;
liczba2= document.getElementById("pole2").value;

na:

 liczba = parseInt(document.getElementById("pole").value,10);
 liczba2 = parseInt(document.getElementById("pole2").value,10)

powinno zadziałać.

0 głosów
odpowiedź 17 lipca 2018 przez sebeks Mądrala (5,300 p.)
1. Zamiast var używaj let do zmiennych, które będziesz zmieniał i const do tych, które nie powinny się zmieniać.

2. w for powinno być (let i =0;

3. I najważniejsze, używaj console.log() a w nim to co sprawdzasz, by sobie wyświetlać sobie w konsoli przeglądark (klawisz F12) i jak działa kod.

4. Javascript typuje dynamicznie. Typ zmiennej możesz sprawdzić za pomocą typeof i np. wyświetlić sobie console.log(typeof zmienna);

5. Zamiast liczby = liczby + i + " "; możesz napisać liczby = `${liczby+i} `; i ten znaczek rozpoczynający i kończący string jest na klawiszu z tyldą (obok 1), ale jeśli liczby zwiększasz o i, a i zwiększasz o +1, to można przecież wprost zwiększyć liczby za pomocą inkrementacji.
1
komentarz 17 lipca 2018 przez Tomek Sochacki Ekspert (227,510 p.)

Z tym sprawdzaniem typu przez typeof to bym uważał... np.:

const arr = [1, 2, 3];

typeof arr; // "object"

Object.getPrototypeOf(arr) === Array.prototype;// true

Object.prototype.toString.call(arr); // "[object Array]"

Dla typów prostych oki, ale przy typach złożonych bezpieczniej czasami sprawdzać dokładnie prototyp.

komentarz 18 lipca 2018 przez sebeks Mądrala (5,300 p.)
Pewnie masz rację, ale początkującemu (czyli mi czasami też) wystarczy typeof. Bardzo często gdy coś nie działa to typeof pokazuje u mnie undefined co pozwala zrozumieć czasem mało oczywisty błąd :)
komentarz 18 lipca 2018 przez Tomek Sochacki Ekspert (227,510 p.)
takie błędy to czasami najlepiej sprawdzać przez debugowanie ze śledzeniem wartosci zmienych i od razu widać w ktorym miejscu kodu co się dzieje.

Podobne pytania

0 głosów
2 odpowiedzi 299 wizyt
pytanie zadane 14 maja 2018 w JavaScript przez xxx1990 Początkujący (490 p.)
0 głosów
1 odpowiedź 405 wizyt
pytanie zadane 2 stycznia 2018 w Sieci komputerowe, internet przez rayet5 Nowicjusz (200 p.)
0 głosów
1 odpowiedź 433 wizyt
pytanie zadane 31 marca 2018 w JavaScript przez xxx1990 Początkujący (490 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...