Pagina 1 di 1

JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 1:01 pm
da ssjx
Allora... visto che i mille impegni che avevo non mi bastavano ho cominciato a studiacchiare JS per un lavoro in cui il semplice "copia/taglia/incolla ad intuito" usato fino ad oggi non basta più

La guida a cui faccio riferimento è Guida JavaScript per esempi (non molto aggiornata in realtà ma mi pare sia un buon punto di partenza... ma accetto suggerimenti [;)] )

Leggendola ho cominciato a capire alcune cose ma su altre ho alcuni dubbi:

- Variabli globali e locali: in questa lezione in particolare (ma spesso anche in quelle precedenti) si dice in pratica di non usare il prefisso var onde evitarsi problemi... il che leggendo la guida ha senso... il dubbio allora è perché in quasi tutti gli script che mi sono capitati fra le mani in vita mia trovo sempre tale dichiarazione se invece è meglio ometterla? cosa mi sfugge?

- In questa lezione invece anell'ultimo esempio viene specificata una cosa che non ho capito:
//notare che "onload" è scritto tutto minuscolo

Cioè cosa starebbe a significare? qual è la differenza? [boh]

- Infine (e qui mi sto scervellando) un atroce dubbio sulle operazioni con le variabili:
Codice: Seleziona tutto
window.open("sponsor.htm","", "left="+sinistra+",top="+alto+",width="+larghFinestra+", height="+altezFinestra+",menubar,toolbar");


Premesso che avrei capito come si usa la somma, non riesco invece a decifrare gli esempi in cui non sommano un bel niente ma racchiudono semplicemente una variabile fra due + [boxed]

Grazie mille

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 3:32 pm
da eDog
I + servono per aggiungere le variabili alla stringa a cui stai lavorando.

Esempio

Codice: Seleziona tutto
var nickname = "ssjx";
//Io ho sempre messo var, non ti so spiegare perché dicano di metterlo o meno..
//E' come la storia dei ";" alcuni lo mettono e altri no..

//Continuando con la lezione, se io scrivo
document.write("Ciao " + nickname);

//Secondo te cosa verrà stampato? Verrà stampato "Ciao ssjx". Ecco il funzionamento è questo.


Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 3:35 pm
da Rumez
provo a darti delle risposte io sulle cose che so..o che penso di sapere..tanto per discuterne un po' visto che può esser einteressante.

[nota] //notare che "onload" è scritto tutto minuscolo

credo che vada scritto tutto in minuscolo perché JS è case sensitive..prova a fare un document.getElementById("identificatore") scritto diversamente da come l'ho scritto io e vedrai che il browser s'incazza.

[nota] operazioni sulel variabili
Codice: Seleziona tutto
window.open("sponsor.htm","", "left="+sinistra+",top="+alto+",width="+larghFinestra+", height="+altezFinestra+",menubar,toolbar");


l'istruzione window.open di JS è così formattata:
Codice: Seleziona tutto
window.open('percorso','nome finestra','valori separati da virgola');

che con un esempio pratico può diventare così:
Codice: Seleziona tutto
window.open('http://www.MegaLab.it','MegaLab.it','width=600,height=600 ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no');


ora diciamo che vogliamo rendere parametrica l'ultima parte ('width=600,height=600 ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no')in modo da poter cambiare dinamicamente ad esempio la grandezza della fineste
Codice: Seleziona tutto
var altezza='500'
var larghezza='500'

window.open('http://www.MegaLab.it','MegaLab.it','width=' + larghezza + ',height=' + altezza + ' ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no');

le stringhe altezza e larghezza andranno quindi a concatenarsi alla stringa delle impostazioni di apertura della finestra

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 4:41 pm
da ssjx
Uhmm.... no scusate l'idiozia ma continuo a non capire [cry]

1 - Discorso onload: la cosa che non spiega è perché quando lo si usa nel tag <body> si scrive onLoad, mentre all'interno dello script tutto minuscolo ... x intenderci è proprio una sega mentale e niente di più, ma mi ha incuriosito e non ho trovato risposta...


2 - Discorso somma variabili: se mi si pone questo codice:
Codice: Seleziona tutto
var nickname = "ssjx";

document.write("Ciao " + nickname);

La cosa quadra perché di fatto si dice "scrivi la parola "Ciao" + il contenuto della variabile nickname" .... tutto regolare

La cosa non mi quadra invece più nell'esempio successivo di Rumez perché le variabili larghezza e altezza non vengono sommate proprio a nulla ma semplicemente racchiuse fra due più:
Codice: Seleziona tutto
var altezza='500'
var larghezza='500'

window.open('http://www.MegaLab.it','MegaLab.it','width=' + larghezza + ',height=' + altezza + ' ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no');

perché quindi non va scritto così? (che a logica sarebbe giusto [uhm] )
Codice: Seleziona tutto
var altezza='500'
var larghezza='500'

window.open('http://www.MegaLab.it','MegaLab.it','width=' larghezza  ',height=' altezza ' ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no');

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 4:56 pm
da eDog
Eccerto che vengono sommate.

Codice: Seleziona tutto
    var altezza='500'
    var larghezza='500'

    window.open('http://www.MegaLab.it','MegaLab.it','width=' + larghezza + ',height=' + altezza + ' ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no');


'width=' + larghezza ==> diventa width=contenuto-variabile-larghezza ==> ossia width=500

'height=' + altezza ==> diventa height=contenuto-variabile-altezza ==> ossia height=500

Per aggiungere il contenuto di una variabile a una stringa bisogna aggiungerla con +. E' la stessa cosa dell'esempio che ti ho fatto, non capisco dove ti blocchi.. [uhm]

Per quanto riguarda l'onLoad.. boh.. io ho sempre scritto onLoad, onClick, onBlur, onFocus, ecc ecc ecc.. e il codice funziona..

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:01 pm
da Rumez
per alcuni DOCTYPE se scrivi le maiuscole non ti si valida la pagina...in ogni caso pure io la reputo una sega mentale..anzi un segone mentale...nel dubbio io scrivo sempre in minuscolo

per la questione delle stringhe ha già risposto eDog..il "+" (più) è il carattere di concatenazione di JS un po' come lo è il "." (punto) in PHP

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:17 pm
da ssjx
eDog ha scritto:Per aggiungere il contenuto di una variabile a una stringa bisogna aggiungerla con +. E' la stessa cosa dell'esempio che ti ho fatto, non capisco dove ti blocchi.. [uhm]


Ecco mi bloccavo proprio qui perché da nessuna parte era scritto che una variabile deve essere racchiusa fra i + .... e non è che adesso lo abbia capito ma lo sto dando come dato di fatto (perché continuo a non capirne il motivo)... spiego il dilemma:

se io scrivessi width= larghezza per logica questo vorrebbe già dire appunto width="contenuto della variabile larghezza" ... qual è quindi il senso dei due + ? Cioè ho appurato che la sintassi prevede di racchiuderlo fra i due segni ma vorrei capire il perché e, soprattutto, in cosa consisterebbe la somma che io continuo a non vedere (cioè per me sarebbe stato lo stesso che dire "le variabili vanno racchiuse fra due giraffe" mentre, mi pare di capire, che per voi non è affatto così ma ci vedete davvero una somma [boh] )

OK sono complicato ma ho sempre avuto questo difetto di voler capire e non soltanto saper applicare [;)]

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:22 pm
da eDog
Rumez ha scritto:per alcuni DOCTYPE se scrivi le maiuscole non ti si valida la pagina...in ogni caso pure io la reputo una sega mentale..anzi un segone mentale...nel dubbio io scrivo sempre in minuscolo.



In XHTML 1.0 Transitional non ho mai avuto questo problema. Forse nello Strict.. [boh]

se io scrivessi width= larghezza per logica questo vorrebbe già dire appunto width="contenuto della variabile larghezza" ... qual è quindi il senso dei due + ?


L'interprete js ti darebbe errore (o semplicemente non eseguirebbe il codice) proprio perché non c'è nessun operatore (parola chiave) che indichi che il contenuto della variabile larghezza deve essere aggiunto alla stringa, cosa che fa appunto il + in questo caso. (E' un'errore di semantica)

OK sono complicato ma ho sempre avuto questo difetto di voler capire e non soltanto saper applicare [;)]


Ci mancherebbe, fai bene! [std]

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:26 pm
da Rumez
ma la variabile non va racchiusa! è una questione di concatenazione...che può essere singola o multipla

singola:
Codice: Seleziona tutto
var risulato
var valore1

risultato = "Il valore della variabile valore1 è: " + valore1


multipla:
Codice: Seleziona tutto
var risulato
var valore1 = "07:35"
var valore2 = "18:15"

risultato = "Il sole sorge alle " + valore1 + " e tramonta alle " + valore2


fidati che a rigor di logica è proprio così..nulla viene racchiuso tra due +

[;)]

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:39 pm
da ssjx
Cavolo ma sai che finalmente ho capito? ........ il problema è proprio che io vedevo quelle variabili racchiuse fra due più (che non avevano quindi significato di somma ma solo "formale") ... adesso è tutto chiaro

Tnx per l'aiuto [;)] (ed al prossimo dubbio che mi viene vi converrà non aprire il thread [:D] )

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:54 pm
da Rumez
[^] vai!

Re: JS - qualche dubbio

MessaggioInviato: lun nov 03, 2008 5:57 pm
da eDog
Buon proseguimento di studio.. [^]

Re: JS - qualche dubbio

MessaggioInviato: mar nov 04, 2008 8:44 pm
da dararag
comunque, mi pare che le stringhe e le variabili possano essere concatenate anche con il &, oppure mi sto confondendo?