일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 개발공부
- Machine Learning
- 자바스크립트
- 클로저
- 객체
- scope
- reactnative
- Linux
- React
- 회고
- docker
- multer
- CSS
- NextJS
- javascript
- HTTP
- 스파르타코딩클럽
- ES6
- 러닝자바스크립트
- 끈기
- Andrew Ng
- Sequence
- coursera
- 데이터전송
- 우선순위
- 1일1문장
- nodejs
- 리눅스
- Til
- 자료구조
- Today
- Total
해나아부지 개발일지
1-1. 변수(variable) 본문
- 변수는 무언가를 담을 수 있는 용기
- 값의 추가, 변경, 삭제가 용이하다
▷변수 선언
자바스크립트에서는 3가지 변수 선언이 가능하다.
1. var - 변수를 선언, 동시에 값을 초기화
2. let - 블록 범위(block-scope) 지역 변수를 선언, 동시에 값을 초기화
3. const - 블록 범위 읽기 전용 상수를 선언
-----> 블록 범위(block-scope)란 코드를 묶는 가장 기본적인 문법, 중괄호 { } 에 의해 범위가 결정
▷변수 할당
- `var` 혹은 `let` 문을 사용해 선언된 변수는 undefined 값을 갖는다.
- undefined 값은 boolean 문맥에서는 false로 동작
수치 문맥에서는 NaN으로 변환
- null 값은 boolean 문맥에서는 false로 동작
수치 문맥에서는 0으로 변환
var a;
console.log("a 값은 " + a); // "a 값은 undefined"로 로그가 남음.
console.log('b 값은 ' + b); // b 값은 undefined
var b;
console.log("c 값은 " + c); // ReferenceError 예외 던짐
let x;
console.log('x 값은 ' + x); // x 값은 undefined
console.oog('y 값은 ' + y); // ReferenceError 예외 던짐
let y;
▷변수 범위
- 전역 변수 : 어떤 함수 외부에 사용되어 문서 내 다른 코드에서 사용 가능
var x = 5; //전역변수로 사용되어 모든 함수에서 사용 가능
if (true) {
console.log(x); //5
}
- 지역 변수 : 어떤 함수 내부에 사용되어 오직 그 함수 내에서만 사용 가능
if (true) {
let y = 5; // if 문 내부의 지역변수로 사용
}
console.log(y); // y = undefined
▷변수 호이스팅(hoisting)
- 나중에 선언된 변수를 참조할 수 있다는 것
- JavaScript의 변수가 "끌어올려지거나" 함수나 문의 최상단으로 올려지는 것을 말함
- 끌어올려진 변수라도 undefined 값을 반환
/* Example 1 */
console.log(x === undefined); // logs "true"
var x = 3;
/* Example 2 */
var myvar = "my value";
(function() {
console.log(myvar); // undefined 값을 반환함
var myvar = "local value";
})();
▷함수 호이스팅(hoisting)
- 함수에서는 단지 함수 선언만 상단으로 끌어올려지고 함수 표현식은 그렇지 않다
/* 함수 선언 */
foo(); // "bar"
function foo() {
console.log('bar');
}
/* 함수 표현식 */
baz(); // TypeError: baz is not a function
var baz = function() {
console.log('bar2');
};
참고문헌
· 정동진, 최주호, 윤성훈 (2019). JSPStudy의 JSP & Servlet 2판.
· MDN Grammar and types (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types)
'Developers > JavaScript' 카테고리의 다른 글
Mutable vs Immutable (0) | 2020.04.28 |
---|---|
알쓸신잡(1) (0) | 2020.04.28 |
1-4. 배열(Array) (0) | 2020.04.25 |
1-3.함수(functions) (0) | 2020.04.16 |
1-2. 조건문(if...else) (0) | 2020.04.12 |