본문 바로가기

JS

JS는 왜 이래요?

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