기본 문법 & 데이터 타입과 변수

2020. 3. 17. 12:38Javas/DESC

자바스크립트의 기본 문법

1. 변수

2. 값

자바스크립트는 7가지 데이터 타입을 제공합니다. 

원시타입

- number, string, boolean, null, undefined, symbol(ECMAScript 6)

객체타입

- object

 

3. 연산자

피연산자의 타입은 반드시 일치할 필요가 없다. 이때 자바스크립트는 암묵적 타입 강제 변환을 통해 연산을 수행합니다. 

 

4. 키워드

5. 주석

6. 문

7. 표현식

8. 문과 표현식의 비교

9. 함수

10. 객체

11. 배열

 


 

데이터 타입과 변수

1. 데이터 타입

1.1 원시타입

1.1.1 number

1.1.2 string

1.1.3 boolean

1.1.4 undefined

undefined 타입의 값은 undefined 가 유일하다. 선언 이후 값을 할당하지 않은 변수는 undefined 값을 가진다. 즉, 선언은 되었지만 값을 할당하지 않은 변수에 접근하거나 존재하지 않는 객체 프로퍼티에 접근할 경우 undefined가 반환된다. 이는 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이루어질 때까지 빈 상태로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화하기 때문이다. 이처럼 undefined는 개발자가 의도적으로 할당한 값이 아니라 자바스크립트 엔진에 의해 초기화된 값이다. 변수를 참조했을 때 undefined가 반환된다면 참조한 변수가 선언 이후 값이 할당된 적이 없는 변수라는 것을 개발자는 간파할 수 있다. 

 

1.1.5 null

null 타입의 값은 null이 유일하다. null은 의도적으로 변수에 값이 없다는 것을 명시할 때 사용한다. 이는 변수가 기억하는 메모리 어드레스의 참조 정보를 제거하는 것을 의미하며 자바스크립트 엔진은 누구도 참조하지 않는 메모리 영역에 대해 가비지 콜렉션을 수행할 것이다. 

 

1.1.6 symbol

심볼은 ES6에서 새롭게 추가된 7번째 타입으로 변경 불가능한 원시 타입의 값이다. 심볼은 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키를 만들기 위해 사용한다. 심볼은 Symbol 함수를 호출해 생성한다. 이때 생성된 심볼 값은 다른 심볼 값들과 다른 유일한 심볼 값이다. 

 

1.2 객체타입

2. 변수

2.1 변수의 선언

2.2 변수의 중복 선언

var 키워드로 선언한 변수는 중복 선언이 가능하다. 다시 말해 변수명이 같은 변수를 중복해 선언해도 에러가 발생하지 않는다.

변수를 중복 선언하면 에러없이 이전 변수의 값을 덮어쓴다. 만약 동일한 변수명이 선언되어 있는 것을 모르고 변수를 중복 선언했다면 의도치 않게 변수의 값을 변경하는 부작용을 발생시킨다. 따라서 변수의 중복 선언은 문법적으로 허용되지만 사용하지 않는 것이 좋다.

 

2.3 동적 타이핑

2.4 변수 호이스팅

2.5 var 키워드로 선언된 변수의 문제점

1) 함수 레벨 스코프

- 전역 변수의 남발

- for loop 초기화식에서 사용한 변수를 for loop 외부 또는 전역에서 참조할 수 있다. 

2) var 키워드 생략 허용

- 의도하지 않은 변수의 전역화

3. 중복 선언 허용

- 의도하지 않은 변수 값 변경

4. 변수 호이스팅

- 변수를 선언하기 전에 참조가 가능하다. 

 

 

 

 

참고 url

https://poiemaweb.com/

 

'Javas > DESC' 카테고리의 다른 글

연산자 & 제어문 & 타입변환과 단축평가  (0) 2020.03.19
var, let, const  (0) 2019.08.12
함수만들기, 함수기본과 매개변수  (0) 2019.08.09
클로저 Closures  (0) 2019.07.17