I would recommend using JSON.stringify, which converts the set of the variables in the object to a JSON string.

var obj = {
  name: 'myObj'
};

JSON.stringify(obj);

Most modern browsers support this method natively, but for those that don't, you can include a JS version.

Answer from Gary Chambers on Stack Overflow
🌐
MDN Web Docs
developer.mozilla.org › es › docs › Web › JavaScript › Reference › Global_Objects › String › toString
String.prototype.toString() - JavaScript | MDN
El toString() método devuelve una cadena que representa al objeto especificado. ... El objeto String sobreescribe el método toString del objeto Object object; no hereda Object.toString().
🌐
freeCodeCamp.org
freecodecamp.org › espanol › news › javascript-de-numero-a-cadena-como-usar-tostring-para-convertir-un-entero-en-una-cadena-de-texto
JavaScript de número a cadena: Cómo usar toString para convertir un entero en una cadena de texto
September 10, 2022 - Finalmente, el método toString() también acepta el parámetro radix o base. La base le permite convertir un número del sistema numérico decimal (base 10) a una cadena que representa el número en otros sistemas numéricos.
🌐
Medium
medium.com › dailyjs › 5-ways-to-convert-a-value-to-string-in-javascript-6b334b2fc778
5 Ways to Convert a Value to String in JavaScript | by Samantha Ming | DailyJS | Medium
May 27, 2019 - JavaScript news and opinion. ... It’s also the one I use because it’s the most explicit — making it easy for other people to follow the intention of your code 🤓 · Remember the best code is not necessarily the most clever way, it’s the one that best communicates the understanding of your code to others 💯 · const value = 12345;// Concat Empty String value + '';// Template Strings `${value}`;// JSON.stringify JSON.stringify(value);// toString() value.toString();// String() String(value);// RESULT // '12345'
🌐
W3Schools
w3schools.com › jsref › jsref_string.asp
JavaScript String() Method
String() is an ECMAScript1 (JavaScript 1997) feature.
🌐
W3Schools
w3schools.com › jsref › jsref_tostring_number.asp
JavaScript Number toString() Method
The toString() method is used by JavaScript when an object needs to be displayed as a text (like in HTML), or when an object needs to be used as a string.
Find elsewhere
🌐
TestMu AI Community
community.testmu.ai › ask a question
Best Methods to Convert Number to String in JavaScript - TestMu AI Community
August 6, 2024 - What is the best method to JavaScript convert number to string while considering factors like speed, clarity, and memory efficiency? Here are some examples to illustrate the different approaches: String(n) n.toString() "" + n n + ""
🌐
2ality
2ality.com › 2012 › 03 › converting-to-string.html
Converting a value to string in JavaScript
Which of the three approaches for converting to string should you choose? value.toString() can be OK, if you are sure that value will never be null or undefined. Otherwise, ""+value and String(value) are mostly equivalent. Which one people prefer is a matter of taste. I find String(value) more explicit. JavaScript values: not everything is an object [primitives versus objects]
🌐
MDN Web Docs
developer.mozilla.org › en-US › docs › Web › JavaScript › Reference › Global_Objects › String
String - JavaScript | MDN
String literals can be specified using single or double quotes, which are treated identically, or using the backtick character `. This last form specifies a template literal: with this form you can interpolate expressions. For more information on the syntax of string literals, see lexical grammar. There are two ways to access an individual character in a string.
🌐
2ality
2ality.com › 2025 › 04 › stringification-javascript.html
Converting values to strings in JavaScript has pitfalls
The library stringify-object by Sindre Sorhus: “Stringify an object/array like JSON.stringify just without all the double-quotes” · Node.js has several built-in functions that provide sophisticated support for converting JavaScript values to strings – e.g.:
🌐
Vultr Docs
docs.vultr.com › javascript › standard-library › Number › toString
JavaScript Number toString() - Convert to String | Vultr Docs
September 27, 2024 - The toString() method in JavaScript offers a straightforward approach to converting a number to its string representation. This built-in function is highly versatile and essential in scenarios where you need to perform operations that require ...
🌐
MDN Web Docs
developer.mozilla.org › es › docs › Web › JavaScript › Reference › Global_Objects › Object › toString
Object.prototype.toString() - JavaScript | MDN
Todos los objetos tienen un método toString que se llama automáticamente cuando el objeto se representa como un valor de texto o cuando un objeto se referencia de tal manera que se espera una cadena. Por defecto, el método toString es heredado por todos los objetos que descienden de Object.
🌐
MDN Web Docs
developer.mozilla.org › es › docs › Web › JavaScript › Reference › Global_Objects › Number › toString
Number.prototype.toString() - JavaScript | MDN
El método toString comprueba su primer argumento, e intenta devolver una cadena de representación en la base especificada. Para bases superiores a 10, las letras del alfabeto indican numerales mayores de 9.
Top answer
1 of 5
11

Puedes iterar sobre la respuesta de tu getElementByClassName haciendo:

var list= document.getElementsByClassName("minodo"),
    array_de_strings = [];

for (var i = 0; i < list.length; i++) {
    console.log(list[i].textContent);
    array_de_strings.push(list[i].textContent);
}
console.log(array_de_strings.join(', '));
<ul>
<li class="minodo">primero</li>
<li class="minodo">segundo</li>
<li class="minodo">tercero</li>
<li class="minodo">cuarto</li>
</ul>

Ojo, La salida de un getElementByClassName es un nodeList, el cual es iterable y sin embargo no es un array por lo cual no puedes simplemente hacer un map o reduce para concatenarlo. Por eso apliqué la técnica burda de ir añadiéndole los elementos a un array vacío. Esto último es sólo una manera más de operar con la salida de un nodeList.

Update 2020

Fe de Erratas

Primero: getElementsByClassName no devuelve un NodeList sino un HTMLCollection. Perdonen por no haber verificado esa noción durante tres años.

Usar selectores CSS3

Con la compatibilidad universal y casi-casi homogénea de los selectores CSS3, es más cómodo usar document.querySelectorAll (este sí devuelve un NodeList, lo prometo). en vez de document.getElementsByClassName. En vez de un método específico para clases, puedes usarlo en reemplazo de getElementsByTagname y getElementsByName, con la desventaja de que es menos eficiente si el DOM es muy complejo.

Por otro lado resulta inmediato a la vista el tipo de propiedad que buscas, dado que la búsqueda por id usa un char '#id_elemento' y por clase se usa un punto '.nombre_clase'.

Replicando el ejemplo original, pero reemplazando el bucle for con algo más conciso:

var list= document.querySelectorAll(".minodo"),
    array_de_strings= Array.from(list)
                      .map(element=>element.textContent);

Como list no es un Array lo sano es convertirlo en tal usando Array.from(...). (Pero el ejemplo subsiguiente es mejor)

var list= document.querySelectorAll(".minodo"),
    array_de_strings= Array.from(list)
                      .map(element=>element.textContent);
console.log(array_de_strings.join(', '));
<ul>
<li class="minodo">primero</li>
<li class="minodo">segundo</li>
<li class="minodo">tercero</li>
<li class="minodo">cuarto</li>
</ul>

Usar CSS3 + destructuring

La destructuración y el spread operator de la especificación ES2015 es todavía más bonita

var list= document.querySelectorAll(".minodo"),
    array_de_strings= [...list]
                      .map(element=>element.textContent);
console.log(array_de_strings.join(', '));
<ul>
<li class="minodo">primero</li>
<li class="minodo">segundo</li>
<li class="minodo">tercero</li>
<li class="minodo">cuarto</li>
</ul>

2 of 5
7

Es lo mismo que ocurre si haces lo siguiente:

var prueba = {a: 1, b: 2};
console.log(String(prueba));

// [object Object]

Si quisieras una representación de ese objeto en forma de String deberías utilizar JSON.stringify:

var prueba = {a: 1, b: 2};
console.log(JSON.stringify(prueba));

// {"a":1,"b":2}

Lo mismo ocurre con otros tipos de objeto. Al utilizar el método getElementsByClassName te devuelve un objeto HTMLCollection (contiene todos los elementos en tu documento que tienen esa clase), por lo tanto si intentas convertirlo a String obtendrás [object HTMLCollection]. Para devolver una representación String de un elemento HTML deberías usar los métodos innerHTML (para una representación String del contenido del elemento) o outerHTML para una representación String del elemento en sí mismo. Sólo debes tener en cuenta que estos métodos deben usarse en un objeto de tipo Element, por lo que si quieres hacerlo en un objeto de tipo HTMLCollection debes iterar en el mismo:

var elementos = document.getElementsByClassName("prueba");

Array.prototype.forEach.call(elementos, function (el) {

    console.log(el.outerHTML);

});
<div class="prueba">uno</div>
<div class="prueba">dos</div>
<div class="prueba">tres</div>

Aunque si tu código debe ser soportado como mínimo por Internet Explorer 8, para seleccionar un solo elemento por clase, en vez de usar getElementsByClassName podrías usar querySelector, que devuelve directamente un objeto de tipo Element en vez de un objeto tipo HTMLCollection ya que selecciona el primer elemento que coincida con el selector:

var elemento = document.querySelector(".prueba");
console.log( elemento.outerHTML );
<div class="no-prueba">uno</div>
<div class="prueba">dos</div>
<div class="no-prueba">tres</div>

🌐
MDN Web Docs
developer.mozilla.org › es › docs › Web › JavaScript › Reference › Global_Objects › parseFloat
parseFloat() - JavaScript | MDN
string · La cadena que representa al valor que se desea convertir. Si este argumento no es una cadena, entonces, será convertida en una usando la operación abstracta ToString. Se ignora el espacio en blanco inicial en este argumento. Un número de coma flotante analizado a partir de la cadena ...