Visualizzazione risultati 1 fino 3 di 3
Like Tree1Likes
  • 1 Post By karl94

Discussione: JS Problema condizionale di una stringa

  1. #1
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito JS Problema condizionale di una stringa

    Salve ,

    vi scrivo per chiedere consiglio..
    mentre sto lavorando ad un progetto mi compare un problema a cui non sa dare una spiegazione

    ho un elemento modificato in CSS con transform , creo un piccolo script che legge i valori di transform
    quindi una volta controllato il valore , dovrebbe modificarlo.

    il problema e' che quando leggo il valore questo mi risulta come una stringa , se lo passo in un IF come stringa non lo riconosce , se lo passo come un number lo riconosce ... ??!!

    Codice:
     alert("Controllo stringa con typeof, risposta: " + typeof trasformaZ + " e il valore della stringa : " + trasformaZ);
    
     if(trasformaZ=="-100"){
      alert("IF funzionante stringa modificata");
     }else{
      alert("IF NON funzionante stringa NON modificata" );
     }
     
     if(trasformaZ==-100){
      alert("IF funzionante come number");
     }else{
      alert("IF NON funzionante come number" );
     }
    esempio

    mi potete aiutare a capire il perche' ...

    grazie per la vostra disponibilita'

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Il carattere meno (-) è preceduto da uno spazio. Non ti conviene analizzare il valore di una proprietà CSS in quel modo, piuttosto tieniti da parte nello script l'ultimo valore che applichi.
    Per quanto riguarda invece l'aspetto dell'uguaglianza tra stringhe e numeri: le specifiche indicano che la stringa deve essere convertita (punto 4 o 5) in valore numerico, mediante l'algoritmo definito nella sezione 9.3.1. Quest'ultimo ignora eventuali spazi bianchi presenti all'inizio o alla fine, in questo modo le espressioni
    Codice PHP:
    " -3 " == -3
    " \n -3 \t \r" == -3
    assumeranno sempre valore vero.
    Ultima modifica di karl94 : 12-07-2014 alle ore 17.06.01
    NLSweb likes this.

  3. #3
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Hai perfettamente ragione !

    primo la stringa aveva uno spazio davanti che non avevo notato.... mea culpa

    per quanto riguarda le specifiche avevo provato all'inizio a fare convertire la stringa in numero (parseInt()) per poi eseguire le operazioni,
    ma non avevo considerato lo spazio bianco.. sapevo che la stringa da convertire se avesse avuto uno 0 iniziale veniva convertita in esadecimale.

    faro' molta piu' attenzione in futuro , e studiero' meglio ECMA ..

    grazie mille , come sempre disponibile e molto preparato !

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •