[TIL] 240305 (Math.floor() 과 Math.trunc())

·2024년 3월 5일

TIL

목록 보기
2/268

Today I learned

알게된 것

Math.floor() 과 Math.trunc() 의 차이점

  • Math.trunc() : 소수점 이하는 단순히 버린다.
  • Math.floor() : 단순히 버리는 게 아니라 내린다. 음수일 때도 마찬가지.

때문에 때에 따라 음수일 경우도 생각해서 단순히 소수점만 버리고 싶다면 Math.trunc()를 사용하는것이 좋다.

과제 오답노트

기본 연산자와 수학

전위형과 후위형

let a = 1, b = 1;

let c = ++a; // ?
let d = b++; // ?

이 코드가 실행되고 변수 a,b,c,d엔 각각 어떤 값들이 저장될지 묻는 문제가 있었다.
나는 cd에서 값이 바뀐 ab는 그저 변수에만 저장되고 기본값은 바뀌지 않았을 거라고 생각해서 1,1,2,1의 답을 내었다.
그러나 ab의 값 역시 2로 바뀌어 있었다. 이런 경우에도 해당 변수의 값이 바뀐다는 걸 알 수 있었다.
기본기가 아직 많이 부족하다는 걸 느낀 부끄러운 문제였다.

형 변환

"" - 1 + 0 = NaN // ""가 형 변환되면 0. 따라서 -1
true + false = NaN // true = 1, false = 0으로 형 변환. 따라서 1
4 + 5 + "px" = 45px // 문자열 전까지의 숫자끼리는 연산한다. 따라서 9px
null + 1 = NaN // null이 형 변환되면 0. 따라서 1
" \t \n" - 2 = NaN // \t, \n이 무엇을 뜻하는지 몰랐는데 공백을 만드는 문자이기에 0이 된다. 따라서 -2

전체적으로 연산 시에 자동으로 형 변환이 된다는 것을 몰랐기에 벌어진 일이었다.

profile
웹 프론트엔드 개발자

0개의 댓글