Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 플로이드워셜
- 데코레이터
- TypeScript
- 머신러닝종류
- queryset
- 싸피셜
- git
- js
- QuerySetAPI
- 백준
- 셀프넘버
- pwa적용하기
- SQL
- sqld
- SSAFYcial
- 14658
- react
- PWA
- 알고리즘
- SSAFY
- 싸피
- 싸피10기
- VITE
- unionfind
- db
- vitepwa
- Django
- Javascript
- Python
- 리액트
Archives
- Today
- Total
Meme's IT
[JS] 헷갈리는 문법들 본문
# 문자열로 이루어진 숫자에서 계산하기
1. 덧셈일 때
정수 → 문자열로 형 변환
console.log('1' + 2) // 12
console.log(1 + '2') // 12
2. 덧셈이 아닌 연산들
문자열 → 숫자로 형 변환됨
console.log(5 - '2') // 3
console.log(5 * '2') // 10
console.log(5 / '2') // 2.5
3. 섞여있다면?
console.log("10" * 3 + "10" - 2)
뭐가 나올까...
우선, 사칙연산의 우선순위는 지켜지므로 곱셈, 앞에서부터
console.log("10" * 3)
이때는 +가 아니므로 문자열이 숫자로, 10 * 3인 30이 나옴
그 다음은 "10" 이 더해짐
console.log("10" * 3 + "10")
+연산이므로 숫자가 문자열이 됨
앞에 30이 문자열이 되어서 "30" + "10"
즉, "3010"이 된다..
마지막으로
console.log("10" * 3 + "10" - 2)
앞에 세개까지는 "3010" 이므로, "3010" - 2
+가 아니므로 문자열이 숫자로, 3010 - 2 = 3008
즉, 최종 결과는 3008이 된다
미쳤네
let number = 13
number++
console.log(number++) // 14
console.log(++number) // 16
console.log(10 + ++number + 10) // 37
console.log(10 + number++ + 10) // 37
console.log(10 + number++ + '10') // 2810
console.log(number) // 19
# 문자열로 형변환 되어서 계산
덧셈은 문자열이 우선순위가 높다
let str = "hello"
let bool = true
console.log(str + bool) // hellotrue
console.log(str - bool) // NaN(Not a Number)
console.log(str * bool) // NaN
'FrontEnd > JavaScript' 카테고리의 다른 글
[JS] Object(객체) (0) | 2023.10.25 |
---|---|
[JS] 참조 자료형, 함수 (0) | 2023.10.25 |
[JS] 조건문과 반복문 (0) | 2023.10.24 |
[JS] 연산자 (0) | 2023.10.24 |
[JS] 데이터 타입 (0) | 2023.10.24 |