Supongamos que tenemos una cadena, la longitud es una propiedad de datos de solo lectura de la cadena. ¿Qué sucede si asignamos involuntariamente valor a la propiedad de longitud de la cadena? ¿Por qué javaScript devuelve esos valores como resultado?
por ejemplo si ejecutamos esta parte del código:
var str="test"; console.log(str.length) console.log(str.length=3)la salida debería ser así:
4 3la tercera línea de código devuelve 3. Mi pregunta es ¿por qué la asignación en javaScript devuelve el lado derecho del operando, no el lado izquierdo?
El operador de asignación siempre devuelve el valor de la derecha. Por lo tanto, pasar la expresión dentro de la función console.log devuelve el valor de la derecha, en su caso 3.
Asignar cualquier valor a la propiedad de longitud de una cadena no tiene ningún efecto.
let myString = "Hello,World!"; myString.length = 4; console.log(myString); // expected output: "Hello,World!" console.log(myString.length); // expected output: 12