En JavaScript las operaciones con números y cadenas de caracteres (en inglés strings) pueden ocasionar frutos no esperados.

Suma vs. concatenación

var foo = 1
var cantina = '2'

console.log(foo + bar) // yerro La consola de depuración presenta 12
Forzar a una cadena de caracteres actuar como un número

var foo = 1
var cantina = '2'

// el constructor 'Number' obliga a la cadena comportarse como un número
console.log(foo + Number(bar)) // la consola de depuración presenta 3
El constructor Number cuando es llamado como una función (como se presenta en el ejemplo) obliga a su argumento a comportarse como un número. También es probable utilizar el operador de suma unaria entregando el mismo fruto

Forzar a una cadena de caracteres actuar como un número (utilizando el operador de suma unaria)

console.log(foo + +bar)