JavaScript száma & karakterlánc nyilatkozat

szavazat
0

Próbálom megérteni, hogy hogyan tudok egy igazi logika a következő JavaScript kódot:

var x = 10;
var y = 20;
var result = x + y;
document.getElementById(demo).innerHTML = result;

Link: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_add_strings4

A kimenet a következő kód = 1020 „Kiegészítés” művelet. A fejemben azt hiszem, helyes, mert ez a láncolata két számot egy string.

var x = 100;
var y = 10;
var z = x / y;   
document.getElementById(demo).innerHTML = z;

Link: https://www.w3schools.com/js/tryit.asp?filename=tryjs_numbers_string1

De a termelés a következő kód = 10 „osztály” művelet & ez nem számít ez a két szám egy String. Ez számított a két számot, mint szám. **** Kérem valaki segíteni nekem, hogy én lesz megérteni egyértelműen. ****

A kérdést 02/09/2018 05:05
a forrás felhasználó
Más nyelveken...                            


6 válasz

szavazat
0

Azt javaslom, hogy olvassa el ezt az Ön számára.

http://2ality.com/2013/04/quirk-implicit-conversion.html

Primitív típus Szám: működtesse más típusú, valueOf () -> toString () -> Típushiba

Primitív String: működtesse más típusú, toString () -> valueOf () -> Típushiba

Válaszolt 02/09/2018 05:53
a forrás felhasználó

szavazat
0

A JavaScript egy lazán típusos nyelv. Ez azt jelenti, hogy nem matematikai húrok (pl "100" / "10" === 10) és a JavaScript automatikusan felismeri kell értelmezni ezeket a húrok a számokat.

De akkor miért nem "10" + "20"egyenlő 30?

JavaScript (talán rosszul) úgy dönt, hogy használja az ugyanazon üzemben ( +) a szövegösszefűzés valamint felül. Ez azt jelenti, hogy el kellett döntenie, szám-szerű húrok úgy kell értelmezni, szövegek és a számok ebben az esetben, és szövegösszefűzés nyert. Sőt, még "10" + 20és 10 + "20"és 10 + "2" + 0lesz az összes hozam "1020". Ha van egy húr valahol , szövegösszefűzés nyer.

Válaszolt 02/09/2018 05:35
a forrás felhasználó

szavazat
0
var a  = "1022";            //variable a&b takes a string.
var b = "2";     
var c = a/b;                //a and b are converted to number type implicitly 
                            //because strings have no function with '/'.
document.write(c + "<br>"); //prints division between a and b (a/b).
c = toString();             //converts c to string explicitly.
document.write(c);          //shows an error as i said string cant be divided!.

Hadd tudja, ha segítek!

Válaszolt 02/09/2018 05:31
a forrás felhasználó

szavazat
0

A javascript „+” operátor kezelik operátor, ha az érvek húr és a „/” osztás csak „osztás társítva.

Válaszolt 02/09/2018 05:21
a forrás felhasználó

szavazat
0

A JavaScript osztás implictly alakítja húrok számokat, és végezzük osztály De kívül javascript tartja, húr és végre összefűzés.

Válaszolt 02/09/2018 05:17
a forrás felhasználó

szavazat
0

JavaScript megtesz annak érdekében, hogy kapsz egy ésszerű választ függetlenül attól, milyen típusú adatokat adja meg. Ebben az első példában látja pályázik a + operátor két húrt. Ez egy érvényes dolog, hogy ezt (összefűzés), így nem kényszer végezzük - a két sztring összefűzött.

Az Ön második példában látja pályázik a / operátor két húrok. Ez nem egy érvényes dolog, de alkalmazása során szereplő számok lenne érvényes, és a húrok odaadta egyaránt képviseli a számok, hogy az, amit csinál. Úgy alakítja őket számokat, majd elvégzi ezt a felosztást.

Ez az automatikus kényszer is nagyon kényelmes (nem kell aggódnia majdnem annyira típusok a JavaScript, mint más nyelvek). Néha ez is lehet egy kicsit veszélyes, hogy adhat eredmények nem számítunk, de ha egyszer kap, hogy megértsék, hogyan és mikor kényszer az a veszély csökken néhány.

Válaszolt 02/09/2018 05:17
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more