Visualizzazione dei risultati da 1 a 5 su 5

Discussione: "" == 0 perchè

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    "" == 0 perchè

    riguardavo una vecchia routine ed ho visto che non va

    function format(num, dec, sepm, sepd)
    {
    if(dec == undefined || dec == "") dec = 2;


    se richiamo la procedura mettendo dec = 0, mi risulta dec = 2

    in poche parole, "" == 0.


    si può risolvere?
    Pietro

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924

    Re: "" == 0 perchè

    Originariamente inviato da pietro09
    riguardavo una vecchia routine ed ho visto che non va

    function format(num, dec, sepm, sepd)
    {
    if(dec == undefined || dec == "") dec = 2;


    se richiamo la procedura mettendo dec = 0, mi risulta dec = 2

    in poche parole, "" == 0.


    si può risolvere?
    la risposta è sempre nella documentazione: https://developer.mozilla.org/en-US/...ison_Operators

    When comparing a number and a string, the string is converted to a number value. JavaScript attempts to convert the string numeric literal to a Number type value. First, a mathematical value is derived from the string numeric literal. Next, this value is rounded to nearest Number type value.
    ovvero se ho

    a = "";
    +a; // ritorna 0

    per prevenire il type coercion nei confronti di valore (==) è sufficiente usare la tripla uguaglianza (===) per verificare l'uguaglianza di valore e di tipo.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio... e guardo la documentazione
    Pietro

  4. #4
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    Re: "" == 0 perchè

    Originariamente inviato da pietro09
    riguardavo una vecchia routine ed ho visto che non va

    function format(num, dec, sepm, sepd)
    {
    if(dec == undefined || dec == "") dec = 2;


    se richiamo la procedura mettendo dec = 0, mi risulta dec = 2

    in poche parole, "" == 0.


    si può risolvere?
    "" == 0 è vera, ma
    "" === 0 è falsa

    http://www.html.it/pag/16682/gli-ope...oleane-in-php/

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    è una vecchia routine, talmente vecchia che è stata fatta ai tempi che non esisteva chrome e firefox ma solo IE5.5 (credo). Probabilmente allora andava

    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.