티스토리 뷰
1. 자바스크립트는 실행 시에 동적으로 변수의 타입을 결정한다. Dynamic Typing 언어이다.
1-1 Primitive 형으로는 6개의 타입을 지원하는데, undefined, null, boolean number, string, symbol 이다.
1-1-1 자바 스크립트의 number는 floating number를 단일적으로 사용한다.
1-2 symbol ES6에서 지원하는 데이터 타입이다.
1-3 Primitive 형은 하나의 값만을 가진다. string 형도 자바처럼 char[] 처럼 취급되지 않는다.
2. Operator는 다른 언어와 비슷하게 특수한 형태를 가지는 함수이다. infix, 내부에 들어가는 형, prefix 등 다양하다.
2-1 Operator는 실행 시의 우선순위를 가지고 있다.
2-2 모든 operator는 Associativity라는 좌->우, 우->좌 같은 실행 방향 가지고 있다.
2-3 모든 operator는 결과 값을 반환한다. 예를 들면 '='은 오른쪽에 할당된 값을 반환한다.
3. 강제형 변환(Coercion)
3-1 자바 스크립트는 동적 타입을 사용하기 때문에 expression을 계산할 때 강제형 변환이 일어 난다.
3-2 '==' 는 강제 형변환이 된 값을 사용하여 비교하여 같은 값인지를 판단한다.
3-3 '==='은 강제 형변환 없이 비교하기 때문에 타입 까지 동일한 경우에 true를 반환한다.
3-4 number 타입의 경우 false, ''(빈공백) 을 0으로 강제변환하여 비교한다.
3-4-1 if (1 < 2 <= 1) 은 true를 반환한다. 1<2가 true를 반환하고 true는 1로 변환되고 1 <= 1 은 true가 된다.
3-4-2 undefined는 NaN을 반환한다.
3-5 boolean 타입의 경우 undefined, null, 빈공백 모두 false로 치환된다. NaN도 false로 해석한다.
3-5-1 if (a) 같은 형식의 값의 존재 여부 판단에 편리하게 사용할 수 있다.
3-5-2 다만 숫자 0도 false로 판단하기 때문에 숫자가 올 경우는 명시적으로 수식을 사용해야 한다.
4. Operator의 특성을 이용하여 기본값을 설정할 수 있다.
4-1 아래의 함수 내의 name이라는 parameter는 생성 과정에서 변수공간에 할당된다.
4-2 호출 시 값이 없는 경우 undefined가 지정된다.
4-3 || 연산자는 반환값이 true, false일 수도 있지만 강제형 변환이 이루어진 경우는 true인 로직의 값을 반환 한다.
4-3-1 name에 undefined, 빈공백, false, NaN가 올 경우 false가 되고 true로 형변환 되는 "Your Name"이 반환된다.
4-3-2 만일 name에 값이 들어 있다면, 그 값이 true로 강제 형변환되기 때문에 그 값이 반환된다.
4-3-3 여기서 주의할 경우 name에 숫자 0이 올 경우는 그냥 "Your Name"이 반환됨에 주의해야 한다.
function hello(name) {
name = name || "Your Name";
console.log("Hello! " + name);
}
4-4 이런 || 연산자의 강제형 변환과 ||의 반환값의 특징을 이용하여 global 공간에서의 변수의 충돌을 체크 할 수 있다.
4-4-1 jQuery라는 변수가 사용되지를 확인하기 위해 var jQuery = jQuery || specialObject; 형식을 사용할 수 있다.
'Languages' 카테고리의 다른 글
JavaScript: delete operator (0) | 2021.04.12 |
---|---|
Javascript : 기본적인 것들 3 (0) | 2021.02.25 |
JavaScript : 기본적인 내용 (0) | 2021.02.23 |
Java 배열복사, Wrapper 클래스 등 (0) | 2021.01.30 |
Java : Optional (0) | 2020.07.28 |
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- one-to-one
- 매핑
- 자바
- 스프링부트
- login
- 스프링
- spring boot
- 상속
- XML
- Validation
- 외부파일
- crud
- Rest
- 설정
- WebMvc
- MYSQL
- 로그인
- Security
- jsp
- mapping
- form
- Angular
- hibernate
- Spring
- Spring Security
- 하이버네이트
- RestTemplate
- one-to-many
- Many-To-Many
- 설정하기