Skip to content

Commit ed45f7f

Browse files
committed
values vs reference
1 parent 385f75b commit ed45f7f

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

26_values_vs_reference.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// values vs reference
2+
// values is primitive and reference is object (array,function)
3+
4+
const name = 'john';
5+
let name2 = name;
6+
7+
console.log(`${name}`);
8+
console.log(`${name2}`);
9+
/*
10+
john
11+
john
12+
*/
13+
14+
// reassign name2 : 'peter doe'
15+
name2 = 'peter doe';
16+
console.log(`${name}`);
17+
console.log(`${name2}`);
18+
19+
// object or reference can't like primitive
20+
let value1 = {
21+
name: 'edward newgate',
22+
};
23+
let value2 = value1;
24+
25+
console.log(`${value1.name}`);
26+
console.log(`${value2.name}`);
27+
/*
28+
edward newgate
29+
edward newgate
30+
*/
31+
32+
// reasign obj from value2 : 'shirohige'
33+
value2.name = 'shirohige';
34+
// and obj value1, and value2 will same cz one reference
35+
console.log(`${value1.name}`);
36+
console.log(`${value2.name}`);
37+
/*
38+
shirohige
39+
shirohige
40+
*/
41+
42+
// but u can use copy obj
43+
console.log('copy obj');
44+
value2 = { ...value1 };
45+
value2.name = 'Edward NewGate Shirohige';
46+
47+
console.log(`${value1.name}`);
48+
console.log(`${value2.name}`);
49+
/*
50+
shirohige
51+
Edward NewGate Shirohige
52+
*/

0 commit comments

Comments
 (0)