문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
wiki:javascript:javascript_note:js_let [2021/04/13 15:26] emblim98 [JavaScript Block Scope] |
wiki:javascript:javascript_note:js_let [2023/01/13 18:44] (현재) |
||
---|---|---|---|
줄 69: | 줄 69: | ||
블록 {} 내부에서 선언된 변수는 블록 외부에서 액세스 할 수 있습니다.\\ | 블록 {} 내부에서 선언된 변수는 블록 외부에서 액세스 할 수 있습니다.\\ | ||
<code javascript> | <code javascript> | ||
+ | { | ||
+ | var x = 2; | ||
+ | } | ||
+ | // x CAN be used here | ||
+ | </ | ||
+ | \\ | ||
+ | ES2015 이전에는 %%JavaScript%%에 블록 범위가 없었습니다.\\ | ||
+ | \\ | ||
+ | '' | ||
+ | \\ | ||
+ | 블록 {} 내부에서 선언된 변수는 블록 외부에서 액세스 할 수 없습니다.\\ | ||
+ | <code javascript> | ||
+ | { | ||
+ | let x = 2; | ||
+ | } | ||
+ | // x can Not be used here. | ||
+ | </ | ||
+ | =====Redeclaring Variables===== | ||
+ | '' | ||
+ | \\ | ||
+ | 블록 내부의 변수를 다시 선언하면 블록 외부의 변수도 다시 선언됩니다: | ||
+ | <code javascript> | ||
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | |||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | var x = 10; // Here x is 10 | ||
+ | { | ||
+ | var x = 2; // Here x is 2 | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
</ | </ | ||
+ | \\ | ||
+ | '' | ||
+ | \\ | ||
+ | 블록 내부의 변수를 다시 선언해도 블록 외부의 변수는 다시 선언되지 않습니다.\\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | var x = 10; | ||
+ | { | ||
+ | let x = 2; | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | '' | ||
+ | |||
+ | =====Loop Scope===== | ||
+ | loop에서 '' | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | var i = 5; | ||
+ | for (var i = 0; i < 10; i++) { | ||
+ | // some statements | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | loop에서 '' | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | let i = 5; | ||
+ | for (let i = 0; i < 10; i++) { | ||
+ | // some statements | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | 첫 번째 예제에서는, | ||
+ | \\ | ||
+ | 두 번째 예제에서는, | ||
+ | \\ | ||
+ | '' | ||
+ | |||
+ | =====Function Scope===== | ||
+ | '' | ||
+ | \\ | ||
+ | 둘 다 **함수 범위(Function Scope)**를 가집니다.\\ | ||
+ | <code javascript> | ||
+ | function myFunction() { | ||
+ | var carName = " | ||
+ | </ | ||
+ | <code javascript> | ||
+ | function myFunction() { | ||
+ | let carName = " | ||
+ | </ | ||
+ | |||
+ | =====Global Scope===== | ||
+ | '' | ||
+ | \\ | ||
+ | 둘 다 **전역 범위(Global Scope)**를 갖습니다.\\ | ||
+ | <code javascript> | ||
+ | var x = 2; // Global scope | ||
+ | </ | ||
+ | <code javascript> | ||
+ | let x = 2; // Global scope | ||
+ | </ | ||
+ | |||
+ | =====Global Variables in HTML===== | ||
+ | %%JavaScript%%에서 전역 범위는 %%JavaScript%% 환경입니다.\\ | ||
+ | \\ | ||
+ | %%HTML%%에서, | ||
+ | \\ | ||
+ | '' | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p>In HTML, global variables defined with < | ||
+ | <p id=" | ||
+ | < | ||
+ | var carName = " | ||
+ | // code here can use window.carName | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | '' | ||
+ | <code javascript> | ||
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | < | ||
+ | <p>In HTML, global variables defined with < | ||
+ | <p id=" | ||
+ | < | ||
+ | let carName = " | ||
+ | // code here can not use window.carName | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====Redeclaring===== | ||
+ | '' | ||
+ | <code javascript> | ||
+ | |||
+ | </ | ||
+ | \\ | ||
+ | 동일한 범위 또는 동일한 블록에서 let을 사용하여 var 변수를 다시 선언하는 것은 허용되지 않습니다.\\ | ||
+ | <code javascript> | ||
+ | var x = 2; // Allowed | ||
+ | let x = 3; // Not allowed | ||
+ | |||
+ | { | ||
+ | var x = 4; // Allowed | ||
+ | let x = 5; // Not Allowed | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | 동일한 범위 또는 동일한 블록에서 let을 사용하여 let 변수를 다시 선언하는 것은 허용되지 않습니다.\\ | ||
+ | <code javascript> | ||
+ | let x = 2; // Allowed | ||
+ | let x = 3; // Not allowed | ||
+ | |||
+ | { | ||
+ | let x = 4; // Allowed | ||
+ | let x = 5; // Not allowed | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | let을 사용하여 다른 범위 또는 다른 블록에서 변수를 다시 선언하는 것은 허용됩니다.\\ | ||
+ | <code javascript> | ||
+ | < | ||
+ | <html lang=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | let x = 2; // Allowed | ||
+ | |||
+ | { | ||
+ | let x = 3; // Allowed | ||
+ | } | ||
+ | |||
+ | { | ||
+ | let x = 4; // Allowed | ||
+ | } | ||
+ | document.getElementById(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | =====Hoisting===== | ||
+ | '' | ||
+ | \\ | ||
+ | hositing: 끌어 올리기, 들어올려 나르기\\ | ||
+ | 의미: 변수를 선언하기 전에 사용할 수 있습니다: | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | carName = " | ||
+ | document.getElementById(" | ||
+ | var carName; | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | '' | ||
+ | \\ | ||
+ | 의미 : 코드 블록은 변수를 인식하지만, | ||
+ | \\ | ||
+ | 선언하기 전에 '' | ||
+ | \\ | ||
+ | 변수는 선언될 때까지 블록이 시작하는 곳에 있는 " | ||
+ | |||
+ | ====예제==== | ||
+ | 다음은 '' | ||
+ | <code javascript> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <p id=" | ||
+ | < | ||
+ | try { | ||
+ | carName = " | ||
+ | let carName; | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | catch (err) { | ||
+ | document.getElementById(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
{{tag> | {{tag> |