변수
- 변수를 선언했을 경우 그 메모리 공간에는 undefined가 들어가있다.
동적 할당과 동적 타이핑
- 자바스크립트의 변수는 값을 할당하는 시점에 변수의 타입이 동적으로 결정된다.
- 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정되며 재할당에 의해 언제든 동적으로 변할 수 있다. 이러한 특징을 동적 타이핑이라고 한다.
- → 이에 따라 자바스크립트를 동적 타입 언어라 한다.
- 변수는 타입을 갖지 않으나 값이 타입을 갖기에 변수의 타입이라고 불린다.
그런데 이 경우 문제가 생길 수 있으니까...
1. 변수는 꼭 필요한 경우에 한해 사용하자.
2. 스코프를 최대한 좁게 만들자.
3. 전역변수는 최대한 사용하지 말자. 어디서든 참조하고 변경해서 다른 코드에 악영향을 미칠 가능성이 생긴다.
4. 되도록 상수를 사용한다.
명시적 타입 변환(타입 캐스팅)
- 명시적 타입 변환 :
.toString()
암묵적 타입 변환(타입 강제 변환)
- 암묵적 타입 변환 :
var str = x + ''
- 기존 원시값(x)를 사용해 다르느 타입의 새로운 원시값을 생성하는 것.
심볼
symbol()
함수를 사용해서 만든 변수.const symbol1 = Symbol(42);
와 같이 써서 생성한다.new symbol()
문법을 지원하지 않아 생성자 측면에서는 불완전한 내장 클래스와 유사하다.- 이렇게 생성된 심볼은 내장 객체의 여러 멤버를 가리키는 정적 프로퍼티와 전역 심볼 레지스트리를 가리키는 정적 메서드를 가진다.
symbol()
에서 반환된 모든 심볼 값은 고유하다.- 선택적으로 문자열을 인수로 전달하여 생성하기도 하는데 이 문자열은 걍 설명임
- 심볼은 객체 프로퍼티에 대한 식별자로 사용되는데 이는 심볼의 거의 유일한 목적으로 사용된다.
Symbol("foo") === Symbol("foo"); // false
- 위와 같이 symbol은 호출될 때마다 매 번 새로운 심볼을 생성한다.
출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol
switch-case
- switch-case문에서 중간중간 들어가있는 break를 쓰지 않으면 어떻게 될까?
- 이와 같은 것을 폴스루라고 한다.
- 폴스루는 여러조건을 전부 거쳐야 하거나 여러개의 조건 중 하나를 검출해내야할 때 유용하게 쓰인다.
-
switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; }
- 폴스루를 멋있게 쓴 코드가 보고싶은데...
반복문
- for, while, do...while
- 배열 순회 forEach
- 객체 프로퍼티 열거 for...in
- 이터러블을 순회할 수 있는 for...of
'웹개발 > JAVASCRIPT' 카테고리의 다른 글
[JavaScript] 원시값, 객체, 프로퍼티 (0) | 2021.09.28 |
---|---|
[JavaScript] 단축 평가, 옵셔널 체이닝 연산자?. , null 병합 연산자 ?? (0) | 2021.09.28 |
[JavaScript] 스코프, 전역 객체, 전역 변수 (0) | 2021.09.28 |
[JavaScript] 함수, 함수 호이스팅, 즉시실행함수 등 (0) | 2021.09.28 |
[Javascript] canvas 이용해서 이미지 로딩하고 출력하기 (0) | 2020.12.22 |