Skip to content

Instantly share code, notes, and snippets.

@cakrads
Last active January 17, 2023 09:23
Show Gist options
  • Save cakrads/832aba36eb852d0681724416483cd6a3 to your computer and use it in GitHub Desktop.
Save cakrads/832aba36eb852d0681724416483cd6a3 to your computer and use it in GitHub Desktop.
simple concept of javascript
/*
* 1. MUTABLE VS IMMUTABLE
*/
// CASE 1
let a = 1;
let b = a;
console.log(b); // No.1
b = 3;
console.log(a); // No.2
console.log(b) // No.3
/*
* Result:
* No.1: 1
* No.2: 1
* No.3: 3
*/
// CASE 2
let orderA = { total: 3_000 };
let orderB = orderA;
console.log(orderB); // No.1
orderB = { total: 5_000 };
console.log(orderA); // No.2
console.log(orderB) // No.3
/*
* Result:
* No.1: 3000
* No.2: 3000
* No.3: 5000
*/
// CASE 3
const order = {total: 30_000};
order.total = 50_0000;
console.log(order.total);
// Result: 50_000
// CASE 4
const orderO = {total: 30_000};
const orderP = orderO;
console.log(orderP); // No.1
orderP.total = 50_000;
console.log(orderO); // No.2
console.log(orderP); // No.3
/*
* Result:
* No.1: 30000
* No.2: 50000
* No.3: 50000
*/
/**
* CLOUSURE
*/
for (var i = 0; i < 3; i++) {
const log = () => {
console.log(i);
};
setTimeout(log, 100);
}
//Result: 3, 3, 3
for (let i = 0; i < 3; i++) {
const log = () => {
console.log(i);
};
setTimeout(log, 100);
}
// result: 1, 2, 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment