> For the complete documentation index, see [llms.txt](https://leeans-dev-book.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leeans-dev-book.gitbook.io/docs/lecture/javascript/let-const.md).

# 변수의 선언과 할당, let const

<pre class="language-javascript"><code class="lang-javascript">var 이름 = 'lee'; 

//선언  , 할당 
이름 = 'hong';
//재할당

//범위
<strong>function 함수명() {
</strong>    var name = 'lee';
    console.log(name);
}

    console.log(name); // 이때는 오류 남 
//변수의 범위는 함수 안 
//함수 밖에서 선언한 변수는 함수 안에서 사용 가능 

</code></pre>

```javascript
let 이름 = 'lee';
let 이름 = 'kim';  // 재선언 X 

const 나이 = 20;
//const 나이 = 30;
나이 = 30;

```

| 변수    | 범위              | 선언    | 할당    |
| ----- | --------------- | ----- | ----- |
| var   | Function-scoped | 재선언 O | 재할당 O |
| let   | {Block-scopec}  | 재선언 X | 재할당 O |
| const | {Block-scopec}  | 재선언 X | 재할당 X |

```html
<script>
    var name = 'hong';
    var id = 0;

    function showName(){
        var name = 'lee';
        var id = 1;

        console.log('함수내부 : ',name);
    }

    showName();
    console.log(name);
    console.log(id);

</script>
```

js009.html 파일을 만들고 위 코드의 결과를 예상 해 봅시다.
