Mostra notizie nelle discussioni
Avatar
Politica
Scritto da
Non Autenticato
il 2020-02-25 20:33:23.0 alle 2020-02-25 20:33:23.0
Re: Quali sono gli argomenti di chi NEGA l’OLOCAUSTO?
Scritto da: Ordine
> Su termometropolitico anni fa fecero un post che superò il MIGLIAIO di pagine e questo coglione pensa di fare un video di mezz'ora scarsa per affrontare un argomento così complesso LOL

Potresti riassumere gli argomenti di chi nega la versione ufficiale sull'olocausto, dato che li conosco poco?

Immacolata concezione

Ad http://archive.vn/qN1x1
Meglio della Madonna! Se vuoi scoprire come ha fatto clicca qui!!‎
Avatar
☺
Politica
Scritto da
il 2020-02-25 20:08:30.0 alle 2020-02-25 20:08:30.0
Trollate totali: 4032
Re: Quali sono gli argomenti di chi NEGA l’OLOCAUSTO?
Su termometropolitico anni fa fecero un post che superò il MIGLIAIO di pagine e questo coglione pensa di fare un video di mezz'ora scarsa per affrontare un argomento così complesso LOL
"Se tutti facessero così..."

"La Romania è ricchissima" cit. Dada
Avatar
☺
Politica
Scritto da
il 2020-02-25 20:03:05.0 alle 2020-02-25 20:03:05.0
Trollate totali: 4032
Re: Quali sono gli argomenti di chi NEGA l’OLOCAUSTO?
Quante cazzate, mi piacerebbe metterlo di fronte a Carlo Mattogno e vederlo sbriciolato.
"Se tutti facessero così..."

"La Romania è ricchissima" cit. Dada
Avatar
Scritto da
Non Autenticato
il 2020-02-25 16:03:01.0 alle 2020-02-25 16:03:01.0
Re: Seguire il coronavirus in tempo reale
Scritto da:
> Scritto da:
> > Scritto da:
> > > Scritto da: Mattia
> > > > Scritto da:
> > > > > Scritto da:
> > > > > > Scritto da:
> > > > > > > Scritto da:
> > > > > > > > Scritto da: Mattia
> > > > > > > > > Scritto da:
> > > > > > > > > > Scritto da:
> > > > > > > > > > > > > > > https://gisanddata.maps.arcgis.com/apps/opsdashboa...
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Dall'altro giorno i morti sono quasi raddoppiati.
> > > > > > > > > > > > >
> > > > > > > > > > > > > 725
> > > > > > > > > > > >
> > > > > > > > > > > > La mortalità sembra essere del 20-30%.
> > > > > > > > > > >
> > > > > > > > > > > 910
> > > > > > > > > >
> > > > > > > > > > 1018
> > > > > > > > >
> > > > > > > > > La mortalità si sta abbassando... adesso è al 18%. Dicono che ci si mette tanto a guarire.
> > > > > > > >
> > > > > > > > 60,364 contagiati.
> > > > > > > >
> > > > > > > > 1,370 morti.
> > > > > > >
> > > > > > > 67.178 - 1.527.
> > > > > >
> > > > > > 69.287 - 1.670
> > > > >
> > > > > 71.902 - 1.775
> > > >
> > > > La mortalità è scesa al 13%.
> > >
> > > 73.451 - 1.875
> > >
> > > > Io ho la febbre, chissà se...
> > >
> > > 73.452 Licchione
> >
> > 76.798 - 2.250
>
> 79.553 - 2.628
>
> e Italia 230, puttana Arrabbiato

80.346 - 270 - 2.705
Avatar
Scritto da
Non Autenticato
il 2020-02-24 22:33:22.0 alle 2020-02-24 22:33:22.0
Re: Mattia renditi utile
In sintesi,

var a dichiara una variabile,
a = 5 le assegna un valore.

var a = 5 dichiara la variabile e le assegna un valore.

Ma se scrivo solo a = 5 per una variabile non dichiarata, JS implicitamente la dichiara.

Per questa ragione ero stato indotto a credere che var a = 5 e a = 5 si equivalessero, come se var fosse un residuo di una sintassi passata mantenuto per retrocompatibilità, perchè non avevo finora incontrato un caso in cui le due situazioni fossero diverse.

Sto cominciando a sospettare che possa eserci una differenza anche tra mettere e non mettere il punto e virgola Newbie, inesperto

È per questa ragione che non puoi pensare di lavorare come programmatore se non hai una buona formazione teorica.

Il coraggio degli asiatici

Ad https://imgur.com/iYd5ZkJ
Cinesi salvano Gatto Selvaggio da sicuro annegamento, altro che musulmani!‎
Avatar
Politica
Scritto da
Non Autenticato
il 2020-02-24 22:24:34.0 alle 2020-02-24 22:24:34.0
Re: Aggiornamento della policy dell'immigrazione in UK
Scritto da:
> Scritto da: Mattia
> >
>
> Yoda bruciato Datte fòco

In ogni caso gli antibrexit stanno probabilmente calcando un po' la mano con la disinformazione, io ho solo sentito dire che per immigrare nell'UK è necessario conoscere l'inglese, e questo certamente svantaggerà tanti italiani a vantaggio dei pakistani.
Avatar
Scritto da
Non Autenticato
il 2020-02-24 22:22:16.0 alle 2020-02-24 22:22:16.0
Re: Seguire il coronavirus in tempo reale
Scritto da:
> Scritto da:
> > Scritto da: Mattia
> > > Scritto da:
> > > > Scritto da:
> > > > > Scritto da:
> > > > > > Scritto da:
> > > > > > > Scritto da: Mattia
> > > > > > > > Scritto da:
> > > > > > > > > Scritto da:
> > > > > > > > > > > > > > https://gisanddata.maps.arcgis.com/apps/opsdashboa...
> > > > > > > > > > > > >
> > > > > > > > > > > > > Dall'altro giorno i morti sono quasi raddoppiati.
> > > > > > > > > > > >
> > > > > > > > > > > > 725
> > > > > > > > > > >
> > > > > > > > > > > La mortalità sembra essere del 20-30%.
> > > > > > > > > >
> > > > > > > > > > 910
> > > > > > > > >
> > > > > > > > > 1018
> > > > > > > >
> > > > > > > > La mortalità si sta abbassando... adesso è al 18%. Dicono che ci si mette tanto a guarire.
> > > > > > >
> > > > > > > 60,364 contagiati.
> > > > > > >
> > > > > > > 1,370 morti.
> > > > > >
> > > > > > 67.178 - 1.527.
> > > > >
> > > > > 69.287 - 1.670
> > > >
> > > > 71.902 - 1.775
> > >
> > > La mortalità è scesa al 13%.
> >
> > 73.451 - 1.875
> >
> > > Io ho la febbre, chissà se...
> >
> > 73.452 Licchione
>
> 76.798 - 2.250

79.553 - 2.628

e Italia 230, puttana Arrabbiato
Avatar
Programmazione
Scritto da
Non Autenticato
il 2020-02-24 22:17:52.0 alle 2020-02-24 22:17:52.0
Re: Programmare a oggetti con javascript
Scritto da: Mattia
> Per capire come programmare a oggetti con javascript, partiremo scrivendo un programma "tradizionale" per calcolare area e parimetro di un quadrato e poi lo trasformeremo in un programma a oggetti.
>
>
function calcolaPerimetroQuadrato(lato){
> 	ensureQuadratoIsValid(lato);
> 
> 	return lato * 4;
> }
> 
> function calcolaAreaQuadrato(lato){
> 	ensureQuadratoIsValid(lato);
> 	
> 	return lato * lato;
> }
> 
> function ensureQuadratoIsValid(lato){
> 	if(!isANumberGreaterThanZero(lato)){
> 		throw new Error("Il lato di un quadrato deve essere un numero superiore a 0");
> 	}
> }
> 
> 
> function isANumberGreaterThanZero(number){
> 	return !isNaN(number) && number > 0;
> }
> 
> 
> var lato;
> 
> while(!isANumberGreaterThanZero(lato)){ 
> 	lato = prompt("Inserisci il lato del quadrato. Deve essere un numero superiore a 0.");
> }
> 
> console.log("Il perimetro del quadrato è " + calcolaPerimetroQuadrato(lato));
> console.log("L'area del quadrato è " + calcolaAreaQuadrato(lato));

>
>
> Nonostante le versioni più recenti di javascript supportino la programmazione a oggetti (certo, in una forma alquanto discutibile) molti sviluppatori utilizzano ancora la programmazione procedurale, che in effetti era l'unica forma supportata in origine.
>
> Perché non abituarsi a programmare a oggetti anche con javascript? Vediamo come.
>
>
>
function Quadrato(lato){
> 	var validator = new DataValidator();
> 	if(!validator.isANumberGreaterThanZero(lato)){
> 		throw new Error("Il lato di un quadrato deve essere un numero superiore a 0");
> 	}
> 
> 	this.lato = lato;
> 
> 	this.getPerimetro = function(){
> 		return this.lato * 4;
> 	}
> 
> 	this.getArea = function(){
> 		return this.lato * this.lato;
> 	}
> }
> 
> function DataValidator(){
> 	this.isANumberGreaterThanZero = function(number){
> 		return !isNaN(number) && number > 0;
> 	}
> }
> 
> 
> var lato;
> var dataValidator = new DataValidator();
> 
> while(!dataValidator.isANumberGreaterThanZero(lato)){ 
> 	lato = prompt("Inserisci il lato del quadrato. Deve essere un numero superiore a 0.");
> }
> 
> var quadrato = new Quadrato(lato);
> 
> console.log("Il perimetro del quadrato è " + quadrato.getPerimetro());
> console.log("L'area del quadrato è " + quadrato.getArea());

>
>
> ... e se in futuro mi verrà chiesto di aggiungere altre cose, tipo il calcolo della diagonale (o tantissime altre cose che possono venire in mente) le metterò nel prototipo Quadrato.
> Tutte le funzioni di validazione di dati finiranno invece ammucchiate nel prototipo DataValidator, così tutti gli sviluppatori sapranno che troveranno lì dentro tutto quello che serve per validare i dati.
>
> Quindi ogni volta che un programmatore del team, da qualche parte nel software, avrà bisogno di un quadrato, comincierà prima di tutto a creare un quadrato con l'apposito prototipo e poi esplorerà tutti i metodi a disposizione per capire se c'è già quello che gli serve per giungere ai risultati richiesti. Se non c'è ancora, lo aggiunge oppure chiede al team di sviluppatori del Quadrato di aggiungerlo, perché magari solo loro hanno la specializzazione universitaria che serve per lavorare sui quadrati ed è perciò compito loro fare in modo che tutti gli altri sviluppatori hanno tutto quello che serve per lavorare con i quadrati.
>
> In questo modo il Quadrato diventa sempre più maturo, più intelligente, praticamente autocosciente e gli sviluppatori che arriveranno per ultimi, quando il cuore del programma sarà completo, non dovranno più preoccuparsi di inventare la ruota: si potranno preoccupare di modellare il front-end.
>
> Più elegante! Più strutturato! Più moderno! Più progressista! Con la lingua fuori

Sin da quando ho iniziato a vedere Javascript gli oggetti ci sono sempre stati e gli ho sempre usati, però gli oggetti creati dal browser corrispondenti a caratteristiche della pagina. L'uso degli oggetti a livelo generale mi è tuttora arduo come concetto.
Inoltre non ho una buona conoscenza degli oggetti relativi alle pagine web: quando ho un problema cerco una soluzione e uso gli oggetti indicati. È il difetto di una formazione informatica non sistematica ma a macchia di leopardo A bocca storta
Avatar
Scritto da
Non Autenticato
il 2020-02-24 22:12:59.0 alle 2020-02-24 22:12:59.0
Re: Seguire il coronavirus in tempo reale
Scritto da: Ordine
> Scritto da: Mattia
> > Scritto da:
> > > Scritto da:
> > > > Scritto da:
> > > > > Scritto da:
> > > > > > Scritto da: Mattia
> > > > > > > Scritto da:
> > > > > > > > Scritto da:
> > > > > > > > > > > > > https://gisanddata.maps.arcgis.com/apps/opsdashboa...
> > > > > > > > > > > >
> > > > > > > > > > > > Dall'altro giorno i morti sono quasi raddoppiati.
> > > > > > > > > > >
> > > > > > > > > > > 725
> > > > > > > > > >
> > > > > > > > > > La mortalità sembra essere del 20-30%.
> > > > > > > > >
> > > > > > > > > 910
> > > > > > > >
> > > > > > > > 1018
> > > > > > >
> > > > > > > La mortalità si sta abbassando... adesso è al 18%. Dicono che ci si mette tanto a guarire.
> > > > > >
> > > > > > 60,364 contagiati.
> > > > > >
> > > > > > 1,370 morti.
> > > > >
> > > > > 67.178 - 1.527.
> > > >
> > > > 69.287 - 1.670
> > >
> > > 71.902 - 1.775
> >
> > La mortalità è scesa al 13%.
> >
> > Io ho la febbre, chissà se...
>
> Speriamo

E poi chi tiene il fòro?

Immacolata concezione

Ad http://archive.vn/qN1x1
Meglio della Madonna! Se vuoi scoprire come ha fatto clicca qui!!‎
Avatar
Scritto da
Non Autenticato
il 2020-02-24 22:12:20.0 alle 2020-02-24 22:12:20.0
Re: Perchè l'Italia ha il contagio più alto di Europa ?
Scritto da: Mattia
> Perchè l'Italia ha il contagio più alto di Europa?
>
> Perché il governo italiano è stato neglicente e quello svizzero lo sarà altrettanto: tutti i giorni in Ticino arriveranno 60'000 frontalieri italiani e così il virus si diffonderà anche in Ticino. Il medico cantonale alla RSI ha già detto che sarebbe una violazione della libertà chiudere le frontiere.
>
> "Talmente liberali da permettere persino ai virus di varcare le frontiere": il mantra è questo.
>
> Contrastare la diffusione di un virus non è facile, questo è chiaro, ma se provvedimenti di buonsenso vengono bocciati perché "è razzismo" o "è contro la libertà" allora sospetti che il vero killer sia il politically correct. A partire dalla Cina che non ha fatto niente per un po' di tempo per non fare brutta figura con il mondo.

I moldavi sostengono che il virus sia stato diffuso dagli americani.
Avatar
Politica
Scritto da
Non Autenticato
il 2020-02-24 22:11:08.0 alle 2020-02-24 22:11:08.0
Re: Aggiornamento della policy dell'immigrazione in UK
Scritto da: Mattia
>

Yoda bruciato Datte fòco
Avatar
☺
Politica
Scritto da
il 2020-02-24 04:54:16.0 alle 2020-02-24 04:54:16.0
Trollate totali: 9915
Quali sono gli argomenti di chi NEGA l’OLOCAUSTO?


Il mio commento...

E allora il PD? Parlaci di Bibbiano!!!

**Modificato dall'autore il 24.02.2020 20:11**

MA checcazzo ne so

Ad http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.‎
Avatar
☺
Scritto da
il 2020-02-24 02:05:11.0 alle 2020-02-24 02:05:11.0
Trollate totali: 9915
Re: Perchè l'Italia ha il contagio più alto di Europa ?
Perchè l'Italia ha il contagio più alto di Europa?

Perché il governo italiano è stato neglicente e quello svizzero lo sarà altrettanto: tutti i giorni in Ticino arriveranno 60'000 frontalieri italiani e così il virus si diffonderà anche in Ticino. Il medico cantonale alla RSI ha già detto che sarebbe una violazione della libertà chiudere le frontiere.

"Talmente liberali da permettere persino ai virus di varcare le frontiere": il mantra è questo.

Contrastare la diffusione di un virus non è facile, questo è chiaro, ma se provvedimenti di buonsenso vengono bocciati perché "è razzismo" o "è contro la libertà" allora sospetti che il vero killer sia il politically correct. A partire dalla Cina che non ha fatto niente per un po' di tempo per non fare brutta figura con il mondo.


**Modificato dall'autore il 24.02.2020 02:13**
Avatar
☺
Scritto da
il 2020-02-23 22:08:56.0 alle 2020-02-23 22:08:56.0
Trollate totali: 4032
Re: Seguire il coronavirus in tempo reale
Scritto da: Mattia
> Scritto da:
> > Scritto da:
> > > Scritto da:
> > > > Scritto da:
> > > > > Scritto da: Mattia
> > > > > > Scritto da:
> > > > > > > Scritto da:
> > > > > > > > > > > > https://gisanddata.maps.arcgis.com/apps/opsdashboa...
> > > > > > > > > > >
> > > > > > > > > > > Dall'altro giorno i morti sono quasi raddoppiati.
> > > > > > > > > >
> > > > > > > > > > 725
> > > > > > > > >
> > > > > > > > > La mortalità sembra essere del 20-30%.
> > > > > > > >
> > > > > > > > 910
> > > > > > >
> > > > > > > 1018
> > > > > >
> > > > > > La mortalità si sta abbassando... adesso è al 18%. Dicono che ci si mette tanto a guarire.
> > > > >
> > > > > 60,364 contagiati.
> > > > >
> > > > > 1,370 morti.
> > > >
> > > > 67.178 - 1.527.
> > >
> > > 69.287 - 1.670
> >
> > 71.902 - 1.775
>
> La mortalità è scesa al 13%.
>
> Io ho la febbre, chissà se...

Speriamo
"Se tutti facessero così..."

"La Romania è ricchissima" cit. Dada
Avatar
☺
Scritto da
il 2020-02-23 20:37:09.0 alle 2020-02-23 20:37:09.0
Trollate totali: 4032
Perchè l'Italia ha il contagio più alto di Europa ?
Come è messa l’Italia rispetto al resto d’Europa? Siamo il Paese con il numero di contagi più robusto. Attualmente la Germania ha registrato 16 casi di infezione, la Francia 12m il Regno Unito 9, la Spagna 2, il Belgio, la Svezia e la Finlandia 1.



Nel mondo va ancora peggio: siamo al quarto posto nella classifica mondiale dei contagiati, a ridosso del terzo occupato dal Giappone

1) Cina 77579

2) Corea del Sud 556

3) Giappone 135

4) Italia 115

5) Singapore 85

6) Hong Kong 70

7) Thailandia 35 P



Praticamente stiamo in Europa ma ai numeri sembriamo un Paese asiatico.



Qual è il problema? Sembra sia stato il blocco dei voli deciso dal ConteCasalino e daSperanza per prendersi le prima pagine dei giornali. È infatti sorprendente che il Paese che ha vantato di aver adottato le misure più stringenti, oggi risulta essere il più colpito. In sostanza: bloccando i voli dalla Cina si è instaurato un meccanismo degli arrivi attraverso voli indiretti, arrivi dunque innumerevoli (da ogni parte del mondo) e incontrollabili in modo approfondito.



coronavirus
CORONAVIRUS

Non puoi pensare di mettere in quarantena ogni essere umano che entra in Italia, né di interrogarlo per capire se è stato in Cina, Dunque i controlli generici sono stati effettuati con il solo ausilio del termoscanner, che rileva solo la febbre, ma abbiamo visto he il contagio può arrivare persino dai portatori sani, senza contare che il virus ha un periodo di incubazione molto lungo.



Gli altri Paesi Ue, lasciando aperto la tratta con la Cina, hanno invece avuto la possibilità di circoscrivere il problema. Nessuno è rientrato in Spagna o in Germania da voli indiretti. E tutti quelli che rientrati dalla Cina sono stati messi direttamente in quarantena. Altro che termoscanner, che non serve a nulla. Se Conte e Speranza avessero lasciato aperto il transito dei voli dalla Cina, oggi anche l’Italia avrebbe avuto un canale unico su cui lavorare

https://www.dagospia.com/rubrica-29/cronache/come-...
"Se tutti facessero così..."

"La Romania è ricchissima" cit. Dada

E TU Lo Sai o no?

Ad http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.‎
Avatar
☺
Programmazione
Scritto da
il 2020-02-22 20:05:41.0 alle 2020-02-22 20:05:41.0
Trollate totali: 9915
Programmare a oggetti con javascript
Per capire come programmare a oggetti con javascript, partiremo scrivendo un programma "tradizionale" per calcolare area e parimetro di un quadrato e poi lo trasformeremo in un programma a oggetti.

function calcolaPerimetroQuadrato(lato){
	ensureQuadratoIsValid(lato);

	return lato * 4;
}

function calcolaAreaQuadrato(lato){
	ensureQuadratoIsValid(lato);
	
	return lato * lato;
}

function ensureQuadratoIsValid(lato){
	if(!isANumberGreaterThanZero(lato)){
		throw new Error("Il lato di un quadrato deve essere un numero superiore a 0");
	}
}


function isANumberGreaterThanZero(number){
	return !isNaN(number) && number > 0;
}


var lato;

while(!isANumberGreaterThanZero(lato)){ 
	lato = prompt("Inserisci il lato del quadrato. Deve essere un numero superiore a 0.");
}

console.log("Il perimetro del quadrato è " + calcolaPerimetroQuadrato(lato));
console.log("L'area del quadrato è " + calcolaAreaQuadrato(lato));



Nonostante le versioni più recenti di javascript supportino la programmazione a oggetti (certo, in una forma alquanto discutibile) molti sviluppatori utilizzano ancora la programmazione procedurale, che in effetti era l'unica forma supportata in origine.

Perché non abituarsi a programmare a oggetti anche con javascript? Vediamo come.


function Quadrato(lato){
	var validator = new DataValidator();
	if(!validator.isANumberGreaterThanZero(lato)){
		throw new Error("Il lato di un quadrato deve essere un numero superiore a 0");
	}

	this.lato = lato;

	this.getPerimetro = function(){
		return this.lato * 4;
	}

	this.getArea = function(){
		return this.lato * this.lato;
	}
}

function DataValidator(){
	this.isANumberGreaterThanZero = function(number){
		return !isNaN(number) && number > 0;
	}
}


var lato;
var dataValidator = new DataValidator();

while(!dataValidator.isANumberGreaterThanZero(lato)){ 
	lato = prompt("Inserisci il lato del quadrato. Deve essere un numero superiore a 0.");
}

var quadrato = new Quadrato(lato);

console.log("Il perimetro del quadrato è " + quadrato.getPerimetro());
console.log("L'area del quadrato è " + quadrato.getArea());



... e se in futuro mi verrà chiesto di aggiungere altre cose, tipo il calcolo della diagonale (o tantissime altre cose che possono venire in mente) le metterò nel prototipo Quadrato.
Tutte le funzioni di validazione di dati finiranno invece ammucchiate nel prototipo DataValidator, così tutti gli sviluppatori sapranno che troveranno lì dentro tutto quello che serve per validare i dati.

Quindi ogni volta che un programmatore del team, da qualche parte nel software, avrà bisogno di un quadrato, comincierà prima di tutto a creare un quadrato con l'apposito prototipo e poi esplorerà tutti i metodi a disposizione per capire se c'è già quello che gli serve per giungere ai risultati richiesti. Se non c'è ancora, lo aggiunge oppure chiede al team di sviluppatori del Quadrato di aggiungerlo, perché magari solo loro hanno la specializzazione universitaria che serve per lavorare sui quadrati ed è perciò compito loro fare in modo che tutti gli altri sviluppatori hanno tutto quello che serve per lavorare con i quadrati.

In questo modo il Quadrato diventa sempre più maturo, più intelligente, praticamente autocosciente e gli sviluppatori che arriveranno per ultimi, quando il cuore del programma sarà completo, non dovranno più preoccuparsi di inventare la ruota: si potranno preoccupare di modellare il front-end.

Più elegante! Più strutturato! Più moderno! Più progressista! Con la lingua fuori




**Modificato dall'autore il 22.02.2020 20:20**
Avatar
☺
Scritto da
il 2020-02-22 13:51:40.0 alle 2020-02-22 13:51:40.0
Trollate totali: 9915
Re: Mattia renditi utile
Scritto da:
>
function func1(){
> a=3;
> }
> 
> function func2(){
> a=4;
> }

> Così func1 crea una variabile locale a e func2 lo stesso.

No, in realtà quello che fanno le due funzioni è cercare di assegnare un valore a una variabile "a" che già esiste.
Visto che la variabile "a" non viene dichiarata in nessuna delle due funzioni, si può dare per scontato che la variabile "a" sia una variabile globale dichiarata da qualche parte nel codice al di fuori di qualsiasi funzione.

L'altra possibilità è che il programmatore si stia sbagliando, perché la variabile "a" non esiste: se si assume che quello che hai messo sopra è l'intero codice del tuo programma, allora questa seconda opzione è quella corretta.
La variabile "a" non viene MAI dichiarata, quindi è un errore.

Se javascript fosse un linguaggio di programmazione serio, quel programma non partirebbe nemmeno: ti darebbe un errore di interpretazione/compilazione, costringendoti a correggere l'errore.

Siccome però javascript è un linguaggio di merda (come diceva anche Wakko per le stesse ragioni) invece ti perdona l'errore e dietro le quinte te lo corregge.
Questo codice...

func1();
func2();


...verrà così trasformato dietro le quinte.

var a;
func1();
func2();


"a" è una variabile globale.


Non è bello il fatto che l'interprete ti corregga gli errori?
No, perché:
- Così facendo non impari a scrivere correttamente il codice
- Il codice che viene eseguito nel programma non è quello che hai tu sotto gli occhi
- A volte ti ritrovi a correre dietro a un bug derivante da un errore di scrittura, che si poteva semplicemente evitare se l'interprete ti avesse segnalato l'errore prima dell'esecuzione anziché voler eseguire il programma a tutti i costi

Ora, immagina di metterti a lavorare su un programma di migliaia di righe di codice...

... se tu scrivi il codice che hai messo sopra e nel programma esistesse già una variabile globale "a" le due funzioni che hai messo non farebbero altre che assegnare un nuovo valore a quella variabile, per cui la tua idea che stai creando una nuova variabile locale in ciascuna delle due funzione sarebbe del tutto errata.
Se poi quella variabile globale fosse di importanza cruciale, il tuo codice andrebbe a creare un errore critico nel software.

Quindi il codice corretto è questo qui.

function func1(){
var a=3; //dichiarazione di una variabile locale "a" che nasconde eventuali variabili globali con lo stesso nome
}
 
function func2(){
var a=4; //dichiarazione di una variabile locale "a" che nasconde eventuali variabili globali con lo stesso nome
}



Javascript da questo punto di vista non funziona come PHP, ma come il C.

C

int a; //dichiarazione della variabile 
a=2; //assegnazione di un valore alla variabile



Javascript

var a; //dichiarazione della variabile 
a=2; //assegnazione di un valore alla variabile


Anche in Javascript, come in C, una variabile deve essere prima di tutto dichiarata in maniera esplicita. La differenza è che siccome il C è un linguaggio tipizzato, la dichiarazione ha anche lo scopo di stabilire il tipo della variabile, mentre in javascript no: per questo si usa il generico "var" anziché int/double/float ecc ecc...


> Se chiamo func1 e func2 una dopo l'altra, a funziona indipendentemente in ciascuna di esee. Ma se func2 chiama func1,
>
>
function func1(){
> a=3;
> }
> 
> function func2(){
> a=4;
> func1();
> }

> quello che fa func1 dentro func2 direi che sia cambiare in 3 il valore della variabile a definita da func2, e non definire una propria variabile interna indipendente fa quella di func2.


Lascia perdere tutto sto codice.

Basta questo.

function func1(){
	a=3;
}


Quando chiami la funzione, l'intrprete si accorgerà che c'è l'errore spiegato sopra, cioè che la variabile "a" non è mai stata dichiarata.

Quindi se tu scrivi questo codice...

func1();


... lui dietro le quinte lo trasforma in

var a;
func1();


"a" è una variabile globale.


Se tu però scrivessi il codice in maniera corretta, l'intrprete non avrebbe bisogno di essere creativo.

Il codice corretto per l'esempio da te fatto.

function func1(){
	var a=3;
}
 
function func2(){
	var a=4;
	func1();
	console.log(a);
}

func2(); //stampa 4
console.log(a); //Dà errore: la variabile "a" qui non esiste



Come puoi constatare, con una scrittura del codice corretta tutto funziona alla perfezione: la variabile in ciascuna delle due funzioni è e sempre resterà una variabile locale diversa e nessuna funzione potrà interferire con la variabile dell'altra.

Ecco invece come è stato interpretato il tuo codice a causa dell'errore della mancata dichiarazione delle variabili.


function func1(){
	a=3;
}
 
function func2(){
	a=4;
	func1();
	console.log(a);
}

var a;
func2();  //stampa 3
console.log(a); //stampa 3: la variabile è accessibile anche da qui essendo globale




Alla chiamata della funzione func2, l'interprete, accorgendosi dell'errore della mancata dichiarazione della variabile a, la dichiara nella memoria globale prima di chiamare la funzione func2. Quindi tutto il tuo codice sarà semplicemente un'assegnazione di valori a questa variabile globale.

Adesso sai perché io e Wakko consideriamo javascript un linguaggio di merda: la sua scarsa severità, nonché il suo prendere personale iniziativa nella correzione di errori formali, porta a bug che sarebbero evitabili.

Certo, anche leggere un libro prima di mettersi a usare un linguaggio comunque previene errori evitabili: mica si può andare a naso con i linguaggi di programmazione, supponendo arbitrariamente che javascript funzioni come PHP.

**Modificato dall'autore il 22.02.2020 17:43**
Avatar
Scritto da
Non Autenticato
il 2020-02-22 00:02:59.0 alle 2020-02-22 00:02:59.0
Re: Mattia renditi utile
code]var a=1;

function func1(){
a=3;
}

function func2(){
var a=3; //dichiarazione di una variabile locale che nasconde quella globale
}[/code]
Eccolo qui l'errore: nelle mie funzioni non ho messo var z = perché pensavo, probabilmente da PHP, che var a = 3 e a = 3 in func1 facessero la stessa cosa.

function func1(){
    a=3;
}

function func2(){
    a=4;
}

Così func1 crea una variabile locale a e func2 lo stesso. Se chiamo func1 e func2 una dopo l'altra, a funziona indipendentemente in ciascuna di esee. Ma se func2 chiama func1,

function func1(){
    a=3;
}

function func2(){
    a=4;
    func1();
}

quello che fa func1 dentro func2 direi che sia cambiare in 3 il valore della variabile a definita da func2, e non definire una propria variabile interna indipendente fa quella di func2.

Giusto?

> Vediamo poi un'ultima curiosità.
>
>
for(var k=0;k<20;k++){
> }
> 
> if(true){
> 	var a=4;
> }
> 
> console.log(k);
> console.log(a);

>
> Se non lo sapevi, sallo: mentre in altri linguaggi ogni blocco di codice ha uno scope separato, in javascript ciò che viene dichiarato dentro un blocco (ciclo, if, ecc ecc...) finisce nella memoria globale.
> Quindi, per evitare di fare confusione, è meglio dichiarare tutte le variabili fuori dai blocchi per poi usarle dentro i blocchi.
>
> L'unico modo per creare uno scope separato in javascript è attraverso le funzioni.

Questo più o meno lo sapevo: alla fine del ciclo k rimane a 19.

Pagina generata in 568 millisecondi

Utenti attivi: 9 nell'ultimo minuto, 29 negli ultimi cinque minuti, 72 negli ultimi 15 minuti