Il tipico problema sollevato per la concatenazione di stringhe ruota attorno ad alcuni problemi:
- il simbolo
+ viene sovraccaricato
- semplici errori
- i programmatori sono pigri
# 1
Il primo e più importante problema con l'utilizzo di + per la concatenazione di stringhe e è che stai usando + per la concatenazione di stringhe e aggiunta.
se hai le variabili a e b e imposti c = a + b , esiste un'ambiguità dipendente dai tipi di a e b . Questa ambiguità ti costringe a prendere ulteriori provvedimenti per mitigare il problema:
String Concat:
c = '' + a + b;
Aggiunta:
c = parseFloat(a) + parseFloat(b);
Questo mi porta al secondo punto
# 2
È molto facile lanciare accidentalmente una variabile su una stringa senza rendersene conto. È anche facile dimenticare che il tuo input sta entrando come una stringa:
a = prompt('Pick a number');
b = prompt('Pick a second number');
alert( a + b );
Produrrà risultati non intuitivi perché prompt restituisce il valore stringa dell'input.
# 3
La necessità di digitare parseFloat o Number() ogni volta che voglio aggiungere è noioso e noioso. Mi considero abbastanza intelligente da ricordare di non rovinare i miei tipi dinamici, ma che non significa che non ho mai incasinato i miei tipi dinamici . La verità è che sono troppo pigro per digitare parseFloat o Number() ogni volta che aggiungo, perché faccio molto di addizione.
Soluzione?
Non tutte le lingue utilizzano + per la concatenazione di stringhe. PHP usa . per concatenare le stringhe, il che aiuta a distinguere tra quando vuoi aggiungere numeri e quando vuoi unire le stringhe.
È possibile utilizzare qualsiasi simbolo per concatenare stringhe, ma la maggior parte è già utilizzata ed è consigliabile evitare la duplicazione. Se avessi la mia strada, probabilmente userei _ per unire le stringhe e non consentire il _ nei nomi delle variabili.