> const hello = '엄청 어려운 코드!'
// 사람이 알아볼 수 있는 설명을 작성하자! 이것이 바로 주석(comment)
/*
여러 줄의 주석을 작성하고 싶은 경우, 코드와 코드 사이에 주석을 넣을 수도 있음
*/
//들여쓰기 하지 않는 경우
if(condition){
console.log('hello, world!')
}
//탭 들여쓰기
if(condition){
console.log('hello, world!')
}
> const hello = 'hello' // single quote
> const world = "world!" // double quote
> const helloWorld = `hello world!` // bactic or back quote
> const hello = 'hello"
> hello // Uncaught SyntaxError: Invalid or unexpected token
\n
(역슬래시
+ n
)을 사용하면 됨> const helloWorld = 'hello\nworld!\n'
> helloWorld
// hello
// wolrd
// !
\
(역 슬래시)를 사용\
없이 동일한 quote나 backtic으로 문자열 표현 시, 유효하지 않은 / 예상치 못한 토큰이라는 에러 메세지 출력> const whoIam = "I'm a programmer";
> whoIam // I'm a programmer
> const helloWorld = '"hello world!"'
> helloWorld // "hello world"
> const howAreYou = 'how\'re you?'
> howAreYou // how're you?
+
연산자를 통해 문자열을 합칠 수 있음> 'hello'+' world'+'!' // hello world!
> 50000 // 50000
> 5e4 // 50000, 소숫점 위로 0이 4개
> 5e-4 // 0.0005, 소숫점 아래로 4자리
> 0b111 // 7, 2진법으로 표현한 7
> 0o111 // 73, 8진법으로 표현한 73
> 0x1a1 //417, 16진법으로 표현한 417
> Number('3') // 3
> Number('3.14') // 3.14
> Number('3월') // NaN
> parseInt('123')+5; // 128
> typeof parseInt('123'); // number
> parseInt('3.14'); // 3
> parseInt('3월'); // 3
> parseInt(111, 2); // 7, 즉 2진수 111은 10진수로 7
> parseFloat('3.14'); // 3.14
> 0/0 // NaN
> parseInt(prompt()) // ("abc" 입력) // NaN
> typeof NaN // number
Infinity
로 나옴> 2/0 // Infinity
> -2/0 // -Infinity
> typeof -Infinity // number
> Infinity - Infinity // NaN
연산자 | 이름 | 의미 |
---|---|---|
+ | Addition | 더하기 |
- | Substraction | 빼기 |
* | Multiplication | 곱하기 |
/ | Division | 나누기 |
% | Remainder = Modulo | 나머지 |
** | Exponent | 제곱 |
typeof
다음에 나오는 변수의 데이터 유형을 반환하는 특별한 연산자> const helloWorld = 'hello world!'
> typeof helloWorld; // string
> typeof `문자열`; // string
+
연산자+
연산자로 더하게 되면, JS는 숫자값을 문자열로 변환시킴> '문자열' + 0 // 문자열0
> '1' + 0 // 10
-
,*
,/
) 산술 연산자+
연산자가 아닌 다른 산술 연산자를 사용할 때는 다른 자료형이 먼저 숫자로 형 변환된 후 빼기를 함NaN
이 되고, 여기서 0을 빼도 그대로 NaN이 됨> '문자열' - 0 // NaN = Number('문자열') - 0
> '3' - 0 // 3 = Number('3') - 0
> '3월' - 0 // NaN = Number('3월') - 0
프로그래밍에서 자료형을 다른 형태로 변경하는 것
JS는 동적으로 작성된 언어(dynamically typed language
<참고>
우선순위(우선순위 높은 순서대로) | 연산자(,로 구분) |
---|---|
20 | () 그룹화 |
19 | . , [] , new , () 함수호출 |
18 | new 인수없이 |
17 | ++ 후위 , -- 후위 |
16 | ! , ~ , + 단항 , ++ 전위 , typeof , void , delete , await |
15 | ** |
14 | * , / , % |
13 | + 다항, - 다항 |
12 | << , >> , >>> |
11 | < , <= , > , >= , in , instanceof |
10 | == , != , === , !== |
9 | & |
8 | ^ |
7 | ` |
6 | && |
5 | ` |
4 | ? : 삼항연산자 |
3 | = , += , -= , **= , *= , /= , %= , <<= , >>= , >>>= , &= , ^= , ` |
2 | yield , yield* |
1 | , 쉼표 |
컴퓨터는 0과 1로 된 데이터만을 읽고 해석할 수 있기 때문에 2의 배수로 나눈 것들은 계산을 잘함
하지만 2진수로 나타내기 어려운 애들은 미세하게 값이 달라짐
> 0.1+0.2 // 0.30000000000000004
> 0.3-0.1 // 0.19999999999999998
> (0.3 * 10 - 0.1 * 10) / 10 // 0.2