Saltar al contenido

¿Qué es “afirmar” en JavaScript?

Solución:

No hay un estándar assert en JavaScript mismo. Quizás esté usando alguna biblioteca que proporcione una; por ejemplo, si está usando Node.js, quizás esté usando el módulo de aserción. (Los navegadores y otros entornos que ofrecen una consola que implementa la API de la consola proporcionan console.assert.)

El significado habitual de un assert función es lanzar un error si la expresión pasada a la función es falsa; esto es parte del concepto general de verificación de afirmaciones. Por lo general, las aserciones (como se las llama) se usan solo en compilaciones de “prueba” o “depuración” y se eliminan del código de producción.

Suponga que tiene una función que se supone que siempre aceptar una cadena. Querría saber si alguien llamó a esa función con algo que no era una cadena (sin tener una capa de verificación de tipo como TypeScript o Flow). Entonces podrías hacer:

assert(typeof argumentName === "string");

…dónde assert arrojaría un error si la condición fuera falsa.

Una versión muy simple se vería así:

function assert(condition, message) {
    if (!condition) {
        throw message || "Assertion failed";
    }
}

Mejor aún, utilice el Error objeto, que tiene la ventaja de recopilar un seguimiento de pila y tal:

function assert(condition, message) {
    if (!condition) {
        throw new Error(message || "Assertion failed");
    }
}

Si usa un navegador moderno o nodejs, puede usar console.assert(expression, object).

Para más información:

  • Referencia de la API de Chrome
  • Consola web Firefox
  • API de consola de Firebug
  • API de consola IE
  • Libélula de ópera
  • API de consola de Nodejs

Las otras respuestas son buenas: no hay una función de aserción integrada en ECMAScript5 (por ejemplo, JavaScript que funciona básicamente en todas partes), pero algunos navegadores se la dan o tienen complementos que brindan esa funcionalidad. Si bien probablemente sea mejor usar una biblioteca bien establecida / popular / mantenida para esto, para fines académicos, una función de “afirmación del pobre” podría verse así:

const assert = function(condition, message) {
    if (!condition)
        throw Error('Assert failed: ' + (message || ''));
};

assert(1 === 1); // Executes without problem
assert(false, 'Expected true');
// Yields 'Error: Assert failed: Expected true' in console
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *