문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| book:ecmascript:variable [2021/10/01 14:20] – 바깥 편집 127.0.0.1 | book:ecmascript:variable [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== 변수 ====== | ||
| + | '' | ||
| + | |||
| + | 변수란 어떻게 설명해야 하는지 잘 모르겠다. 어느 누구도 나에게 이것이 변수의 정의라고 이야기 하지는 않았다. 그냥 '' | ||
| + | |||
| + | 소통을 위한? | ||
| + | |||
| + | ===== 변수란? ===== | ||
| + | | ||
| + | |||
| + | |||
| + | ===== 선언 ===== | ||
| + | 내가 그의 이름을 불러주기 전에 | ||
| + | 그는 단지 휘발성 기억에 지나지 않았습니다. | ||
| + | |||
| + | 내가 그의 이름을 불러주었을때, | ||
| + | 비로서 그는 내게로 와서 변수가 되었습니다. | ||
| + | |||
| + | 내가 그의 이름을 불러준 것처럼 | ||
| + | 나의 이 표현과 의도에 알맞는 | ||
| + | 누가 나의 이름을 불러다오. | ||
| + | |||
| + | 그에게로 가서 나도 | ||
| + | 그의 변수가 되고 싶다. | ||
| + | |||
| + | 우리들은 모두 | ||
| + | 무엇이 되고 싶다. | ||
| + | |||
| + | 너는 나에게 나는 너에게 | ||
| + | 잊혀지지 않는 | ||
| + | 하나의 프로그램이 되고 싶다. | ||
| + | <code javascript> | ||
| + | var name = ' | ||
| + | </ | ||
| + | |||
| + | ==== var ==== | ||
| + | var는 자바스크립트 초창기에 있었던 유일한 선언문이었다. 선언하는 방법은 '' | ||
| + | 초기값이 없을 경우에는 '' | ||
| + | |||
| + | 다음으로 알아봐야 하는 것이 변수가 영향을 미치는 범위일 것이다. 정통적인 프로그램언어에서는 변수의 영역이 블럭단위로 할당이 되지만 JavaScript에서 **var의 영역은 function영역('' | ||
| + | |||
| + | 예로써 한 번 살펴보자. | ||
| + | <code javascript> | ||
| + | var i=0; | ||
| + | function fn(){ | ||
| + | var i = 1; | ||
| + | console.log(`i ${i}`); | ||
| + | } | ||
| + | fn(); | ||
| + | console.log(`i = ${i}`); | ||
| + | </ | ||
| + | |||
| + | 위의 예제에서 변수 i는 함수'' | ||
| + | |||
| + | 또한 '' | ||
| + | |||
| + | <code javascript> | ||
| + | var i = 99; | ||
| + | function fn(){ | ||
| + | console.log(`선언전 : ${i}`) | ||
| + | var i = 100; | ||
| + | console.log(`선언후 : ${i}`) | ||
| + | } | ||
| + | fn(); | ||
| + | </ | ||
| + | 위의 코드는 | ||
| + | < | ||
| + | 선언전 : undefined | ||
| + | 선언후 : 100 | ||
| + | </ | ||
| + | var i = 99; | ||
| + | function fn(){ | ||
| + | var i; | ||
| + | console.log(`선언전 : ${i}`) | ||
| + | i = 100; | ||
| + | console.log(`선언후 : ${i}`) | ||
| + | } | ||
| + | fn(); | ||
| + | </ | ||
| + | |||
| + | 여기서 잠깐 다른 이야기를 하면 아직 '' | ||
| + | |||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | javascript에서는 변수를 선언을 하지 않아도 사용할 수 있다. 이것의 장점이 있겠으나 부수적인 문제를 많이 낳고 있다. 명시적으로 선언한 변수만을 사용하는 습관을 가지자! | ||
| + | </ | ||
| + | - 현재는 선언하지 않은 변수사용을 제한하는 방식으로 변하였다. | ||
| + | |||
| + | ==== let ==== | ||
| + | ES6(ECMAScript 2015)에서 도입한 것이다. '' | ||
| + | |||
| + | ==== const ==== | ||
| + | |||
| + | ES6에서 도입한것으로 불변의 값을 갖는 상수선언에 사용한다. 변수란 변할수있는것을 뜻한다. 변수만 가지고도 충분히 코딩이 가능하다. 그럼 왜? 양이 있으면 음이 있듯이, 반대개념은 우리에게 도움을 주고. 또는 필요하다. 넓이가 항상 양수가 아니듯이.. | ||
| + | |||
| + | ===== 타입 ===== | ||
| + | |||
| + | javascript에서는 명시적인 type선언이 없다. 이것은 장단점이 존재하며 많은 논쟁이 있을 수 있다. | ||
| + | 이러한 관계로 '' | ||
| + | '' | ||
| + | |||
| + | 하지만 강제를 한다는 것은 창조성에 제한을 두는 경우도 존재하기도 한다. | ||
| + | |||