3 sentencias de Javascript muy útiles que es necesario conocer

Las sentencias de JavaScript nos dan el poder de implementar distintos tipos de lógica en nuestro código. JavaScript nos proporciona muchas, y todas cuentan con su propio propósito y sintaxis. Entre los ejemplos más conocidos podemos encontrar declaraciones de expresión, declaraciones de iteración, sentencias condicionales, y más.

En el artículo de hoy vamos a ver cuatro sentencias poco comunes de JavaScript que es posible que ni conozcas, para así afianzar tus conocimientos de JavaScript, y escribir código de mejor calidad.

Sentencia vacía

En lugar de cualquier declaración de JavaScript, puedes poner una sentencia vacía, la cual se escribe como un solo punto y coma ;. Cuando el intérprete de JavaScript, interpreta una sentencia vacía, no se ejecuta ningún código. Es por eso que pueden ser útiles para reemplazar subsentencias que no desees que se ejecuten.

Por ejemplo, supongamos que tenemos una variable llamada “litmus” que tiene de valor “neutral”. Basándonos en el valor de otra variable llamada “pH”, el valor de litmus cambiará a “acidic” cuando pH < 7 o a “basic” cuando el pH > 7.

Si el valor de pH resulta ser inválido, se genera un error. Para una condición de este tipo, se aplican las siguientes instrucciones condicionales:

var litmus = 'neutral';
var pH; 
 
if(pH>0 && pH<7) 
    litmus = 'acidic';
else if(pH>7 && pH<15)
    litmus = 'basic';
else
    throw "Invalid pH value";

Sin embargo, el anterior script genera un error cuando el valor de pH es justo 7, que no debería ser el caso.

Cuando pH es 7, litmus debe mantener su valor por defecto, que es “neutral”. Por lo tanto, para un caso como este, agregar una condición cuando pH es 7 con una sentencia vacía de salida.

var litmus = 'neutral';
var pH; 
 
if(pH>0 && pH<7)
    litmus = 'acidic';
else if(pH===7)
    ;       /* empty statement */
else if(pH>7 && pH<15)
    litmus = 'basic';
else
    throw "Invalid pH value";

Ahora, cuando pH sea 7, el interpretador no ejecutará ninguna instrucción, y litmus seguirá con su valor por defecto, “neutral”.

Las sentencias vacías también se pueden utilizar para rellenar un array con la ayuda de un bucle.

var ary = [];
 
for(var i = 0; i < 5; ary[i++] = i)
;       /* empty statement */
console.log(ary); 
// [1, 2, 3, 4, 5]

Por lo general, una sentencia for está seguida de una sub-declaración que se compone de una sola sentencia, o de un bloque de sentencias (el cual se encierra entre llaves {}) para ser ejecutado. Si usamos una sentencia vacía en lugar de la sub-declaración, el intérprete no ejecutará nada después de cada bucle, por lo que sólo se produce el bucle, y las condiciones que el bucle alcanza a ejecutar.

En el ejemplo anterior, ary[i++] = i, se ejecuta para cada iteración del bucle como parte de la condición de bucle.

La sentencia debugger

En las herramientas de depuración, podemos añadir marcadores llamados puntos de interrupción en cualquier línea del código para marcar las líneas donde el debugger debe iniciar la depuración.

En JavaScript, la declaración debugger funciona de la misma manera que un punto de interrupción, exceptuando que se agrega en el código fuente directamente, en lugar de dentro de la herramienta. Cualquier depurador en funcionamiento detendrá la ejecución del script cuando llegue a la instrucción debugger con el fin de ayudarte a depurar el código.

Recuerda que la depuración se disparará sólo si el script se ejecuta en modo depuración, es decir, si un programa de depuración se está ejecutando durante la ejecución del script. Si no hay un programa de depuración actualmente en ejecución, el intérprete continuará su trabajo como si nada hubiera pasado.

Como prueba, ejecuta el siguiente código en Codepen, mientras mantienes abierta la herramienta de depuración del navegador:

console.log('tesing');
debugger;
console.log('debugging statement');

La sentencia with

Cuando el intérprete JS encuentra un nombre sin calificar que no especifica a qué objeto o a qué función está asociado, busca en el scope cualquier objeto o función a la que puede referirse.

Mediante el uso de la sentencia with, podemos añadir un objeto en la parte superior del scope, y especificar cuál es el objeto de la llamada asociado.

En el siguiente ejemplo, se puede ver que las propiedades del objeto person se las llama por medio de sus nombres solo dentro de la sentencia with.

var person = {
    firstName: "John",
    lastName: "Doe",
    age: "18",
    country: "Greenland"
};
 
with(person) {
    console.log("Hi, my name is " + firstName + " " + lastName + 
    ". I'm " + age + " years old, and live in " + country + ".");
}
// "Hi, my name is John Doe. I'm 18 years old, and live in Greenland."

Compara como se vería el código anterior sin utilizar la sentencia width:

var person = {
    firstName: "John",
    lastName: "Doe",
    age: "18",
    country: "Greenland"
};
 
console.log("Hi, my name is " + person.firstName + " " + 
person.lastName + ". I'm " + person.age + 
" years old, and live in " + person.country + ".");
// "Hi, my name is John Doe. I'm 18 years old, and live in Greenland."

Como puedes ver, la sentencia with puede ser un gran atajo si trabajas con muchas de las propiedades del mismo objeto.

Ten en cuenta sin embargo, que el uso de la sentencia with en modo estricto no está permitido, ya que puede causar cierta confusión.

Además, sólo es recomendable utilizar la sentencia with si tus sentencias internas utilizan el objeto asociado a la sentencia with, de lo contrario, el intérprete perderá el tiempo buscando el objeto mencionado.

Fuente: hongkiat.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR