JS는 세달 전 한 일주일 정도 맛만 본 게 다인데 Node를 쓰려고 급하게 다시 공부중이다.
예전에는 강의를 보고 코드를 따라 치기 급급했는데, 기초 개념면에서 파이썬과 다른 점을 좀 짚고 들어가려 한다. 머릿속에 물음표가 뜨는 일이 좀 많다. 제목을 왜 이래요?라고 쓰긴 했지만 이유를 뜯어보는 건 아니고 그냥 받아들이는 수 밖에 없다. 외우기.
정현님께서 추천해주신 강의 링크. 영상이 짤막하게 많고(한글 cc 없음) 중간중간에 퀴즈 있다. 신규가입자는 할인 받아서 15000원.
브라우저 콘솔 쓸 때
변수 선언 직후 바로 아랫줄에 undefined가 뜨는게 뭔가 이상한 게 아니고 변수명 찍어보면 그제서야 넣어준 값이 보인다. 정상임.
primitive types
number, boolean, string, null, undefined
undefined -> i dont know..... 그래 알았다.... 차라리 에러를 뱉어줬으면 좋겠다...
null -> value i s explicitly nothing. typeof null을 찍어보면 object라고 나온다. (아니 null도 type이라면서요)
type 확인할 때
typeof <확인할 것>
환장하는 부분
NaN(not a number)은 number type이다. (....???? not a number라면서요....)
''(빈 string)은 string type이다. (....???? false가 아니네...)
true, false는 반드시 전부 소문자여야 valid boolean이다.
컨벤션에 맞는 변수명은 camelCase. snake식은 잘 안 쓴다. 파이썬에 길들여진 사람에겐 어색하다.
let num = 5;
num + 4;
이 다음 num을 찍어보면 9가 아니고 5이다.
let num = 5;
num++;
이 다음 num을 찍어보면 6이 아니고 5이다....
let num = 5;
num += 2;
이 다음 num을 찍어보면 7이다.
let num1 = 3;
let num2 = 4;
result = num1 + num2;
result; // return: 7
num1 += 3;
num1; // return: 6
이 다음 return을 찍어보면 10이 아니고 7이다.................. 변수가 snapshot 느낌..
num1 = 1;
num2 = num1++;
이 다음 num1을 찍어보면 2고 num2를 찍어보면 1이다.
++가 num2 할당 후에 실행되었다. 할당 전 실행하고 싶다면 let num2 = ++num1; 이렇게 앞에 써야 된다.
let test = 'test'
test + 1
return은 'test1'이다. 숫자와 문자열을 더하면 문자열끼리 더한 것처럼..나온다
template literals
backtik 쌍 안에 ${ 변수와 연산 등 } 을 넣는 조합으로 파이썬의 fstring 같은 효과.
methods
method뒤에 () 붙여야 execute된다. 안 붙이고 쓰면 함수 정보만 보여주고 실행은 안 된다.
string methods
이건 좀 비슷하다.
<string>.length
<string>.trim()
<string>.toLowerCase()
<string>.toUpperCase()
<string>.indexOf()
처음 등장하는 것의 결과를 반환한다.
let animal = 'catdog';
animal.indexOf('cat') // return: 0
animal.indexOf('dog') // return: 3
animal.indexOf('z') // return: -1 (not found)
<string>.slice(beginIndex, endIndex)
beginIndex이상, endIndex 미만. endIndex는 생략 가능
<string>.replace(existingString, newString)
existingString이 <string>에 여러번 존재한다면 맨 처음 등장하는 것만 교체한다.
<string>.repeat(time)
<string>을 time번만큼 반복
Math object
collection of properties and methods
PI, E 등의 상수와 round, floor, sin 등의 methods를 갖고 있다.
floor(<number>) 버림
ceil(<number>) 올림
round(<number>) 반올림
random() 0 이상 1 미만의 랜덤숫자
abs(<number>) 절대값
pow(2, 3) 2**3와 같음
파이썬의 randInt 같은 게 없고 random(), +, *, floor 등을 조합해서 만들어야 된다....하.....
'JS' 카테고리의 다른 글
JS - callback, promise (0) | 2020.12.26 |
---|---|
JS - JSON (0) | 2020.12.25 |
JS - array (0) | 2020.12.24 |
JS - object (0) | 2020.12.23 |
JS - class (0) | 2020.12.22 |