[SEB FE] section 1 unit 10 (1) μμμλ£νκ³Ό μ°Έμ‘°μλ£ν + μ’ ν©ν΄μ¦
μμμλ£ν
"hello world!"
"hello codestates!"
// "hello world!" μ "hello codestates!"λ λͺ¨λ λ³κ²½ν μ μλ κ³ μ λ κ°μ
λλ€.
let word = "hello world!"
word = "hello codestates!"
// νμ§λ§, wordλΌλ λ³μμ μ¬ν λΉμ νμ¬ λ³μμ λ΄κΈ΄ λ΄μ©μ λ³κ²½νλ κ²μ κ°λ₯ν©λλ€.
const num1 = 123;
num1 = 123456789; // μλ¬ λ°μ
// const ν€μλλ‘ μ μΈνλ©΄, μ¬ν λΉμ λΆκ°ν©λλ€.
- λ³μμλ νλμ λ°μ΄ν°λ§ λ΄λλ€
- string, number, bigint, boolean, undefined, symbol, (null)
let a = 1;
a = b;
b = 2;
a; // ==> 2
μ°Έμ‘°μλ£ν
- ν¬κΈ°κ° λμ μΌλ‘ λ³νλ λ°μ΄ν° 보κ΄ν¨
- μμμλ£νμ΄ ν λΉλ λμλ λ³μμ κ°(value)μμ²΄κ° λ΄κΈ°κ³ , μ°Έμ‘° μλ£νμ΄ ν λΉλ λμλ 보κ΄ν¨μ μ£Όμ(reference)κ° λ΄κΉ.
- κ·Έλμ μ°Έμ‘°μλ£νμ κ³ μ λ ν¬κΈ°μ 보κ΄ν¨μ΄ μλλΌ λμ μΌλ‘ ν¬κΈ°κ° λ³νλ νΉλ³ν 보κ΄ν¨ μ¬μ©
- array, object, function
let e = [10, 20];
lef f = e;
f[0] = 50;
e; // ==> [50, 20]
μ’ ν©ν΄μ¦
3. λ€μ μ½λκ° μ€νλ ν, μ½μμ μ°νλ κ°μ κ°κ° 무μμΈμ§ κ³ λ₯΄μΈμ.
console.log('codestates' === 'codestates');
console.log(3.14 === 3.14);
console.log([1,2,3] === [1,2,3]);
console.log({ foo: 'bar' } === { foo: 'bar' });
λ΅ : true true false false
μλ°μ€ν¬λ¦½νΈλ 머리λ₯Ό μλλ€. κ·Έλ¬λ©΄ λ©λͺ¨λ¦¬μ 곡κ°μ λ΄κ° μμμ λΆμ¬νκ³ , λ³μλ κ·Έ 곡κ°μ μ£Όμλ§ μ°Έμ‘°νλλ‘ νμ! κ·Έλμ μ°Έμ‘° μλ£νμ΄ νμνκ² λ©λλ€.
κ°μ ν¬κΈ°κ° μμλ‘ λ³νλ κ²μ μ²λ¦¬νκΈ° μν΄μ μ°Έμ‘°μλ£νμ heapμ΄λΌλ λ³λμ λ©λͺ¨λ¦¬ μ μ₯κ³΅κ° μ¬μ©
μ°Έμ‘° μλ£νμ ===(strict equality)λ μ£Όμκ°μ΄ κ°μμ§λ₯Ό νμΈ
console.log([1,2,3] === [1,2,3]);
μ΄ μ½λλ₯Ό μ½μΌλ©΄μ μ»΄ν¨ν°λ μ΄λ―Έ λκ°μ heap μ μ₯ 곡κ°μ μ£Όμ ν보
미리 μ£Όμκ°κ³Ό λ©λͺ¨λ¦¬ κ°μ μ‘μλλ€ --> [] === [] λ true κ° λμ€μ§ μμ
4. λ€μ μ½λκ° μ€νλ ν, x.fooμ κ°μ 무μμΈμ§ κ³ λ₯΄μΈμ.
let x = { foo: 3 };
let y = x;
y = 2;
λ΅ : 3
let x = { foo: 3 };
let y = x; // μ¬κΈ°μ yλ xμ μ£Όμκ° ν λΉ
y = 2; // νμ§λ§ λ€μ 2λ₯Ό ν λΉ
μ΄ κ³Όμ μμ μ°Έμ‘° μλ£ν {foo : 3}μλ μλ¬΄λ° μν₯μ λ―ΈμΉμ§ μμκΈ° λλ¬Έμ
x.fooλ κ·Έλλ‘ 3
5. λ€μ μ½λκ° μ€νλ ν, myArrayμ κ°μ 무μμΈμ§ κ³ λ₯΄μΈμ.
let myArray = [2, 3, 4, 5];
let ourArray = myArray;
ourArray[2] = 25;
ourArray = undefined;
λ΅ : [2, 3, 25, 5]
- λ³μ ourArrayμ myArrayμ μ£Όμκ°μ΄ ν λΉ
- ourArray μ£Όμκ°μ μμΉν λ°°μ΄μ 2λ²μ§Έ μμλ₯Ό 25λ‘ λ³κ²½
(ourArrayμ myArrayμ μ£Όμκ°μ κ°μμΌλ‘ νμ¬ myArrayλ [2, 3, 25, 5]) - λ³μ ourArrayμ μμ μλ£ν undefinedκ° ν λΉλμκΈ° λλ¬Έμ, myArrayμ μ κ·Όx
(νμ§λ§ myArrayλ κ·Έλλ‘ [2, 3, 25, 5])
6. λ€μ μ½λκ° μ€νλ ν, player.scoreμ κ°μ 무μμΈμ§ κ³ λ₯΄μΈμ.
let player = { score: 3 };
function doStuff(obj) {
obj.score = 2;
}
doStuff(player);
λ΅ : 2
doStuff(player);
- ν¨μ doStuffμ λ³μ playerλ₯Ό μΈμλ‘ μ λ¬νμ¬ νΈμΆ
function doStuff(obj) {
obj.score = 2;
}
- ν¨μκ° νΈμΆλλ©΄ (μ€νλλ©΄) λ§€κ°λ³μ objμ λ³μ playerμ κ°μ΄ ν λΉ - { score: 3 }μ μ£Όμκ°
- obj.scoreμ 2λ₯Ό ν λΉνλ©΄, objμ playerλ κ°μ μ£Όμκ°μ κ°μ§κ³ μκΈ° λλ¬Έμ, player.scoreλ 2
7. λ€μ μ½λκ° μ€νλ ν, score μ κ°μ 무μμΈμ§ κ³ λ₯΄μΈμ.
let score = 80;
function doStuff(value) {
value = 90;
}
doStuff(score)
λ΅ : 80
doStuff(score)
ν¨μ doStuffμ scoreμ κ°μ μΈμλ‘ μ λ¬νμ¬ μ€ν
function doStuff(value) {
value = 90;
}
- λ§€κ°λ³μ valueμ scoreμ κ° 80μ΄ μ λ¬λκ³ , value = 90μμ valueμ 90μ΄ ν λΉ
- λ€λ§ λ³μ scoreμ κ° 80μ, μ°Έμ‘° μλ£νμ΄ μλκΈ° λλ¬Έμ μ£Όμκ°μ μ λ¬νμ§ μκ³ , κ° μ체λ₯Ό 볡μ¬νμ¬ μ λ¬
- λ°λΌμ ν¨μμμ μ΄λ€ μΌμ΄ λ°μνλκ°μ κ΄λ ¨μ΄ μμ΄ scoreλ μ΄κΈ°μ ν λΉλ κ° 80μ΄ κ·Έλλ‘ μ μ§