λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’κ³΅λΆ€/JS

[JavaScript] varκ³Ό ν˜Έμ΄μŠ€νŒ…

by rindev 2021. 10. 11.

βœ… ν˜Έμ΄μŠ€νŒ…μ΄λž€?

catName("클둜이");

function catName(name) {
  console.log("제 κ³ μ–‘μ΄μ˜ 이름은 " + name + "μž…λ‹ˆλ‹€");
}

/*
κ²°κ³Ό: "제 κ³ μ–‘μ΄μ˜ 이름은 ν΄λ‘œμ΄μž…λ‹ˆλ‹€"
*/
  • ν•¨μˆ˜ μ•ˆμ— μžˆλŠ” 선언듀을 λͺ¨λ‘ λŒμ–΄μ˜¬λ €μ„œ, ν•΄λ‹Ή ν•¨μˆ˜ 유효 λ²”μœ„μ˜ μ΅œμƒλ‹¨μ— μ„ μ–Έν•˜λŠ” 것
  • ν•¨μˆ˜ μ„ μ–Έλ§Œ! λŒμ–΄μ˜¬λ €μ§ (ν• λ‹Ήμ€βŒ)

 

//λ³€μˆ˜μ˜ ν˜Έμ΄μŠ€νŒ… μ˜ˆμ‹œ

console.log(name); // undefined
var name = "김점프";

//-------------------------------

var name; // nameλ³€μˆ˜κ°€ ν˜Έμ΄μŠ€νŒ… λ˜μ–΄ μƒλ‹¨μœΌλ‘œ 이동
console.log(name);
name = "김점프";

 

//ν•¨μˆ˜μ˜ ν˜Έμ΄μŠ€νŒ… μ˜ˆμ‹œ

foo();
foo2();

function foo() {
	console.log("ν•¨μˆ˜μ„ μ–Έλ¬Έ");
}

var foo2 = function() {
	console.log("ν•¨μˆ˜ν‘œν˜„μ‹");
}

//----------------------------------

var foo2;

function foo() {
	console.log("ν•¨μˆ˜μ„ μ–Έλ¬Έ");
}

foo();
foo2();

foo = function() {
	console.log("ν•¨μˆ˜ν‘œν˜„μ‹");
}

 

βœ… ν˜Έμ΄μŠ€νŒ…μ˜ μš°μ„ μˆœμœ„

λ³€μˆ˜ 선언이 ν•¨μˆ˜ 선언보닀 μœ„λ‘œ λŒμ–΄μ˜¬λ €μ§!

 

var myName = "λ‚΄ 이름";

function myName() {
	console.log("이름을 좜λ ₯ν•©λ‹ˆλ‹€");
}

function yourName() {
	console.log("이름이 λ­λ‹ˆ?");
}

var yourName ="λ„ˆμ˜μ΄λ¦„μ€";

console.log(typeof myName);
console.log(typeof yourName);

//--------------------------------------

// ν˜Έμ΄μŠ€νŒ… : λ³€μˆ˜κ°’ μ„ μ–Έ
var myName;
var yourName; 

// ν˜Έμ΄μŠ€νŒ… : ν•¨μˆ˜μ„ μ–Έλ¬Έ
function myName() {
	console.log("이름을 좜λ ₯ν•©λ‹ˆλ‹€");
}

function yourName() {
	console.log("이름이 λ­λ‹ˆ?");
}

// λ³€μˆ˜μ— 값을 ν• λ‹Ή
myName = "λ‚΄ 이름";
yourName ="λ„ˆμ˜μ΄λ¦„μ€";

console.log(typeof myName); //String
console.log(typeof yourName); //String

 

 

βœ… ν˜Έμ΄μŠ€νŒ… μ‚¬μš© μ‹œ 주의점

  • 가독성과 μœ μ§€λ³΄μˆ˜λ₯Ό μœ„ν•΄μ„œ ν˜Έμ΄μŠ€νŒ…μ΄ μΌμ–΄λ‚˜μ§€ μ•Šλ„λ‘ ν•˜λŠ”κ²Œ 제일 μ’‹μŒ
  • varλ₯Ό μ“°λ©΄ ν˜Όλž€μŠ€λŸ½κ³  μ“Έλͺ¨μ—†λŠ” μ½”λ“œκ°€ 생길 수 μžˆμœΌλ‚˜........
    • ES6을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ 있기 λ•Œλ¬Έμ—, μ•„μ§κΉŒμ§€λŠ” varλ₯Ό μ–΄λ–»κ²Œ μ“°λŠ” 지 μ΄ν•΄λŠ” ν•˜κ³  μžˆμ–΄μ•Ό ν•œλ‹€κ³  함

 

 

βœ… κ·Έλž˜μ„œ varλŠ” μ™œ ν˜Έμ΄μŠ€νŒ… λ˜λŠ”κ±΄λ°

ν˜Έμ΄μŠ€νŒ…μ€ ν•¨μˆ˜λ₯Ό μœ„ν•΄ λ‚˜μ˜¨ κΈ°λŠ₯이라고 ν•œλ‹€.

//ν•¨μˆ˜κ°€ ν˜Έμ΄μŠ€νŒ… λ˜μ–΄μ•Ό ν•˜λŠ” 이유

var foo = function() {
	foo2();
}

var foo2() = function () {
	console.log("ν˜Έμ΄μŠ€νŒ…μ— κ΄€ν•œ κΈ€");
}

foo(); // "ν˜Έμ΄μŠ€νŒ…μ— κ΄€ν•œ κΈ€"

foo() μ•ˆμ—μ„œ foo2()λ₯Ό ν˜ΈμΆœν•˜κΈ° μœ„ν•΄μ„œ ν˜Έμ΄μŠ€νŒ…μ΄λΌλŠ” κΈ°λŠ₯이 μƒκΈ°κ²Œ 된 것!

(ν•¨μˆ˜λ₯Ό μˆœμ„œμ— 상관없이 호좜 ν•  수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•΄)

 

근데 초기 μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” ν•¨μˆ˜λ₯Ό function으둜 선언할지 var둜 선언할지 μ• λ§€ν–ˆκΈ° λ•Œλ¬Έμ— var도 ν˜Έμ΄μŠ€νŒ… λ˜λ„λ‘ ν–ˆλ‹€κ³  ν•œλ‹€...😨

 

 

 

πŸ‘€μ°Έκ³  (κ°μ‚¬ν•©λ‹ˆλ‹€)

더보기

 

 

λŒ“κΈ€