• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

135
Views
Operador de comparación en JavaScript
const abc = 5; const bcd = 5 console.log(abc===bcd)/// return true

Este resultado me sorprende.

Dado que a abc se le asignará una ubicación de memoria diferente ... y bcd también tiene una ubicación diferente

por qué esto está volviendo cierto

Si el código fuera

 const abc = 5 const bcd = abc console.log(abc === bcd) ///true here make sense

Parece que estoy realmente confundido con el primer caso ya que abc y bcd son dos variables diferentes y no tienen relación entre ellas.

Cualquier artículo o blog relacionado realmente ayudaría.

almost 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En javascript, todas las primitivas (string, nubmer, bigint, boolean, undefined, symbol, null) son inmutables y se compararán por valor:

Todas las primitivas son inmutables, es decir, no se pueden alterar. Es importante no confundir una primitiva en sí misma con una variable a la que se le asigna un valor primitivo. A la variable se le puede reasignar un nuevo valor, pero el valor existente no se puede cambiar de la forma en que se pueden modificar objetos, matrices y funciones.


En comparación con eso, los objetos (esto también incluye matrices y funciones, básicamente todo lo que no es primitivo) son mutables y se compararán por identidad.

Ejemplo:

 console.log("Primitives compare by value:"); console.log(5 === 5); // true console.log("foo" === "foo"); // true console.log(true === true); // true console.log("Objects compare by identity:"); console.log({} === {}); // false console.log([] === []); // false console.log(function(){} === function(){}); // false


Envolturas primitivas

Javascript también tiene objetos de contenedor para los tipos primitivos , que podrían ser la fuente de su pregunta.
Estos contenedores envuelven un valor primitivo y son, como sugiere el nombre, objetos. Entonces, para instancias de contenedor primitivo, su código sería correcto:

 let a = new Number(1); let b = new Number(1); console.log("Primitive wrappers are objects:"); console.log(a === a); // true console.log(a === b); // false

almost 3 years ago · Juan Pablo Isaza Report

0

Hay una diferencia fundamental en JavaScript entre valores primitivos (indefinidos, nulos, booleanos, números y cadenas) y objetos (incluidas matrices y funciones)

I. Las primitivas se comparan por valor :

  1. Dos valores son iguales solo si tienen el mismo valor.
  2. Si se comparan dos valores de cadena distintos, JavaScript los trata como iguales si, y solo si, tienen la misma longitud y si el carácter en cada índice es el mismo.

II. Los objetos son diferentes a los primitivos.

Los objetos no se comparan por valor : dos objetos distintos no son iguales aunque tengan las mismas propiedades y valores.

Por lo tanto, los objetos a veces se denominan tipos de referencia para distinguirlos de los tipos primitivos de JavaScript.

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error