Mientras estudiaba recientemente JS proveniente de un fondo de C++, descubrí que la función pop() de matrices tiene un valor de retorno en JS.
Ahora, en C++ no tenemos un valor de retorno para el método pop_back() porque, según un artículo de Cargill, es imposible diseñar una función pop de pila a prueba de excepciones como se responde aquí .
Entonces, ¿cómo funcionan las cosas en JS o me estoy perdiendo algo?
Ninguno de los casos de "Excepciones lanzadas por T" aparece en JavaScript, porque simplemente no se invoca ningún operador de asignación o construcción. JavaScript es un lenguaje de recolección de basura, por lo que todo es un identificador del objeto real. Llamar a pop simplemente reduce la matriz en uno y devuelve el identificador que estaba allí sin hacer nada más.
Si quiere razonar al respecto en términos de C++, todo es un std:: pop std::shared_ptr<T> , así que haga clic en move-construye eso a su valor de retorno, que no tiene excepciones.