[js] 연산자(Operator)
연산자
연산자
- 연산의 사전적 의미
- 규칙에 따라 계산하여 값을 구함
- 연산자(Operator) 형태
- +, -, *, /, %
- <, <= , > , >=
- ==, !=, ===, !==
- 콤마,
typeof
,delete
,void
등
표현식
- 표현식 형태
- 1 + 2
var total = 1 + 2;
해석, 실행 순서
- 해석이란?
- JS코드를 기계어로 바꾸는 것, Compile
- 실행순서
var result = 1 + 2 + 6;
- = 왼족의 표현식 평가
- = 오른쪽의 표현식 평가
- = 오른쪽 표현식의 평가 결과를 왼쪽 표현식 평가 결과에 할당
+ 연산자
- 자바스크립트는 웹에 띄워지는 것이기에 최대한 오류가 나지 않으려고한다.
- 그래서
정수 + 문저열
일 경우 정수를 형 변환을 하여 concat 한다.var value = 1 + 5 + "ABC"; Console.log(value); /*6ABC*/ /*연산자의 오른쪽 부분 연산 후, 왼쪽 처리 하므로*/
숫자로 변환
type value | return value |
---|---|
Undefined |
NaN |
Null |
+0 |
Boolean |
true: 1, false: 0 |
String |
if value is num, then calc num. but + op concat |
Console.log(10 + "123"); /*10123*/
Console.log(123 - "23"); /*100*/
산술 연산자
- (-,*,/) 연산자
- 왼쪽 표현식 평가 결과에서 오른쪽 표현식 평가 결과를 연산한다.
- string 타입이지만, 값이 숫자이면 Number 타입으로 변환하여 계산
- 숫자가 아닌 string 타입일때 ,NaN
단한 + 연산자
- 형태 : + value
- 값을 Number 타입으로 변환
- 코드 가독성
- +를 더하기로 착각할 수도 있음
- Number()도 기능 같음
var value = "7";
Console.log(typeof value); /*string*/
Console.log(typeof +value); /*number*/
Console.log(typeof Number(value)); /*number*/
유니코드
- unicode
- 세계의 모든 문자를 통합하여 코드화
- 연어, 이모지 등
- 코드 값을 코드 포인트 라고 부름
- 0000~FFFF, 10000~1FFFF 값에 문자 매핑
- 유니코드 컨소시엄 (시이트)
- 표기 방법
- u와 숫자 형태 : u0031은 숫자 1
- JS 는 u앞에 역슬래시() 작성
- 역슬래시()를 문자로 표시하려면 역슬래시(\) 2개 작성
- ES6에서 표기 방법 추가됨
Console.log("\u0031"); /* 1 */ Console.log("\u1100"); /* ㄱ */ Console.log("\\u1100"); /* \u1100 */
- UTF
- Unicode Transformation Format
- 유니코드의 코드 포인트를 매핑하는 방법
- UTF-8, UTF-16, UTF-32 로 표기
<meta charset= "utf-8">
- UTF-8은 8비트로 코드 포인트 매핑
- 8비트 인코딩이라고 부름
== 연산자
- 값만 같으면 된다.
Console.log( 1 == "1" ) /*true*/
!= 연산자
- 값, 타입이 모두 다르면 된다.
Console.log( 1 == "1" ) /*true*/
=== 연산자
- 값, 타입 둘다 일치 해야함
Console.log( 1 === "1" ) /*false*/
!== 연산자
- 값 또는 타입 다르면 true
Console.log( 1 === "1" ) /*false*/
콤마 연산자
- 표현식 분리 가능
var a = 1, b =2;
조건 연산자
- 3항 연산자
Console.log(1 == "1" ? "같음" : "다름"); /*같음*/ Console.log(1 === "1" ? "같음" : "다름"); /*다름*/