Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 로버트 C마틴
- 이웅모
- 유틸리티타입은 공식문서 자주 보자
- 생코님Redux
- 갈길이 멀구나
- 출처 : https://www.boostcourse.org/
- 출처는 코딩애플
- 쏙쏙 들어오는 함수형 코딩
- 출처 : 자바스크립트 딥다이브
- 고등애플
- 함수형 코딩
- 출처는 코딩앙마
- https://product.kyobobook.co.kr/detail/S000001952246
- 자바스크립트 딥다이브
- 오종택개발자님
- 출처 : 코딩애플
- 리엑트를 다루는 기술
- 출처 : 코딩앙마
- 쏙속 들어오는 함수형코딩
- 김영한쌤
- 클린코드다시읽기
- 쏙쏙들어오는함수형코딩
- 에릭 노먼드
- 나는 flux좋아...
- 흥달쌤
- 에릭노이먼
- 큰돌의 CS책
- 에릭 노이먼
- 쏙쏙 들어오는 함수형코딩
Archives
- Today
- Total
흰둥씨의 개발장
[오늘의 자바스크립트] 연산자 본문
1. 산술 연산자
=(대입 혹은 할당), +(더하기), -(빼기), *(곱하기), /(나누기), %(나머지값), **(거듭제곱)
자바스크립트의 연산은 사칙연산의 방식을 대부분을 그대로 따릅니다
+ , - 연산자만 있을때 왼쪽에서 오른쪽으로 순차연산하고,
* , / 연산자만 있을 때 왼쪽에서 오른쪽으로 순차 연산하며,
+,-,*,/ 가 함께 있을때는 곱하기, 나누기가 먼저 연산되고 더하기, 빼기는 나중에 연산됩니다.
또, (...)가 있는 경우 (...)먼저 연산 후 나머지를 연산합니다.
- 피연산자 : 연산자가 연산을 수행하는 대상('피연산자’는 '인수(argument)'라는 용어로 불리기도 함)
ex) 2*9 ; 곱하기 연산자의 왼쪽연산자는 2, 오른쪽연산자는 9입니다
- 단항(unary) 연산자 : 피연산자를 하나만 받는 연산자
ex) -1, +3...
- 이항(binary) 연산자 : 두 개의 피연산자를 받는 연산자
ex)4+25...
- 대입 연산자(=, 할당연산자) : 무언가를 할당할 때 쓰는 연산자
ex) x = 25;
ㄴ할당연산자의 체이닝: 할당연산자를 여러개 연결하는 것
ex)let a, b, c; a = b = c = 2 + 2;
다만, 위 예시와 같이 연결된 경우, 평가는 우측부터 진행이 됩니다.
2+2연산이 먼저 진행된 이후 값이 c->b->a순으로 할당됩니다. (위와 같이 연결하면 가독성에 좋지 않아 권장하지 않는 방식임)
2. 비교연산자
<(작다), >(크다), ==(같다), <=(작거나 같다), <=(크거나 같다), !=(같지 않다),
===(완전히 같다), !==(완전히 같지 않다)
두 개 이상의 값 비교하며, 왼쪽 피연산자 기준으로 평가합니다.
주로 조건문에서 많이 사용되며 결과 값은 true(1)와 false(0)로 출력됩니다.
자바스크립트에서는 boolean을 넣지 않아도 자동변환하여 연산합니다.
==은 0과 false를 구별하지 못하지만, 일치 연산자(strict equality operator) ===는 형 변환 없이 구별할수있습니다.
let i;
0 == false; //true
0 === false; //false (데이터 타입불일치 하기 때문에)
i = 1==true; //1은 데이터 타입 true이다. -> true(1)
i = 1===true; // 1은 === 데이터 타입까지 완전히 같지 않다(엄격한 비교)->false(0)
i = 5 < 4;//~보다 작다.(5는 4보다 작다) ->false(0)
i = 5 > 4;//~보다 크다.(5는 4보다 크다) ->true(1)
i = 5 == 4;//~는 같다. (5와 4는 같다)->false(0)
i = 5 != 4;//~는 같지 않다.(5와 4는 같지 않다)->true(1)
i = 5 <= 4;//~작거나 같다. (5는 4보다 작거나 같다)->false(0)
i = 5 >= 4;//~크거나 같다.(5는 4보다 크거나 같다)->true(1)
i =`345`==345;//숫자형문자열 == 숫자 -> true(1) ->숫자형 문자열은 자동변환 되어 비교하기때문에 true임
i = `15`>`12`;//문자열>문자열 ->true
i = `korea`>`america`;//true >abcdefhgijk번째vs a번째 여서 숫자로 자동변환되어 비교함
i = `apple`>`apale`;//true > 첫번째 글자의 자리수가 동일하면 두번째 (다음)자리수 비교함
i = 0 == false;//true (0과 false는 같다)
i = 0 != false;//false (0과 false는 같지않다)
i = 0 !== false;//true (0과 false는 완전히 같지않다)> 0의 데이터 타입과 false의 데이터 타입이 완전히 같지는 않기때문에 true
i = 40 > 25 > 10; //false > 40>25는 true이기 때문에 1이다. 그래서 1>10은 false이다.
3. 문자열(string)의 연산
let num;
//더하기 연산자
num = 11+22;//숫자 + 숫자 = 숫자(33)
num = '문자열은 인용부호(따옴표)와 함께 작성하는 데이터';//문자열 string
num = `재미있는` + `백틱`; //문자열 + 문자열
num = `재미있는` +`자바스크립트` +`백틱`;
num = `11 ` +22; //문자열+숫자 =문자열1122
num = 11 +`22`; // 숫자+문자열= 문자열1122
//빼기 연산자
num = 11-22; //숫자 - 숫자 =숫자 (-11)
num = `오늘은 `-`신나는 `-`수요일!`-`이예~`;//문자열-문자열-문자열-문자열=NaN(Not a Number) 문자열끼리 빼기 연산불가
num = `11`-22; //문자열 - 숫자 = 숫자형 문자열(-11)의 경우 자동으로 변환하여 연산
num = 11-"22";// 숫자 - 문자열 = 숫자(-11)
//곱하기 연산자
num = 11*22;// 숫자 *숫자 =숫자
num =`오늘은`*`신나는`/`수요일`**'이예~';//문자열*문자열/문자열**문자열=NaN(Not a Number)
num = "11"*22;///숫자형문자열- 숫자=숫자(연산가능)
num = 11**'2';//숫자=숫자형문자열 =숫자(연산가능)
//복합 연산자
num = 11+22+'의 합은?';//(숫자+숫자)->33숫자 + 문자열연산됨 ->33의 합은?
num = '다음 수의 합은?' + 11+22;//(문자+숫자)->문자열 +숫자 -> 문자열이 됨 (다음 수의 합은? 1122)
console.log(num);
산술연산자에서,
1. 더하기 연산자만 문자열 데이터를 연산할 수 있다.
`재미있는`+`자바스크립트!` ->가능
`오늘은 `- `신나는 ` % `금요일` -> 불가능
2. 더하기 연산자를 제외한 다른 연산자는 숫자형 문자열의 경우 *숫자*로 자동변환하여 연산한다. "11"*22; ('11'은 숫자형 문자열로 문자그대로 연산되지 않고 11로 변환되어 연산한다. )
3. 복합 연산의 경우 문자열과의 더하기가 먼저 연산되면 문자열 데이터로 반환한다.
'[오늘의 공부] > Javascript' 카테고리의 다른 글
[javascript] 기본 (모던 JS정리) (2) | 2023.01.25 |
---|---|
[오늘의 자바스크립트] 사이즈와 scroll (0) | 2022.12.20 |
[오늘의 자바스크립트] 이벤트 (Event) (0) | 2022.12.20 |
[오늘의 자바스크립트] 함수 (0) | 2022.12.18 |
[오늘의 자바스크립트]변수와 상수 & 클로저 (2) | 2022.12.16 |