20240103

귤금·2024년 1월 3일

Node.js 4기 TIL

목록 보기
3/86

Today?

JavaScript 문법 종합반 3주차

데이터 타입의 종류 :

[기본형과 참조형의 구분 기준]

  1. 복제의 방식
    1. 기본형 : 값이 담긴 주소값을 바로 복제
    2. 참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값을 복제
  2. 불변성의 여부
    1. 기본형 : 불변성을 띔
    2. 참조형 : 불변성을 띄지 않음

Q. 불변성?

불변하다 : 데이터 영역 메모리를 변경할 수 없음
불변하지 않다 : 데이터 영역 메모리를 변경할 수 있음

깊은 복사와 얕은 복사 ㅠㅠ 어렵다

null
1. 용도 : ‘없다’를 명시적으로 표현할 때
2. 주의 : typeof null

    - typeof null이 object?
    
    	javascript 자체 버그
  • 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다.
  • 그 객체 안에는 3가지가 존재한다.
    ✓ VariableEnvironment
    ✓ LexicalEnvironment
    ✓ ThisBindings

Q. this?

  • this는 윈도우 객체인가?
this === window
true
✓ this 는 윈도우 객채가 맞다

call / apply / bind

call 메서드
	* 호출 주체인 함수를 즉시 실행하는 명령어
    * 첫 번째 매개변수에 this로 binding할 객체를 넣어주면 명시적으로 binding
    
var func = function (a, b, c) {
	console.log(this, a, b, c);
};

// no binding
func(1, 2, 3); // Window{ ... } 1 2 3

// 명시적 binding
// func 안에 this에는 {x: 1}이 binding돼요
func.call({ x: 1 }, 4, 5, 6}; // { x: 1 } 4 5 6

x:1이라는 객체가 this로 바인딩

오늘 배운 것

https://github.com/JY2345/Qhub
백준허브에서 깃헙 연동했음!! 문제풀이용 레포지토리 만드니까 그 안에 자동으로 풀이가 들어간다.

두 수의 나눗셈

내가 짠 코드

let solution = (num1, num2) => 
    Math.floor(num1/num2 * 1000);

다른 사람 예제코드

function solution(num1, num2) {
    return Math.trunc(num1 / num2 * 1000);
}

Math.floor()는 소수점을 내림한다. ex) Math.floor(23.3) = 23, Math.floor(-23.3) = -24가 된다.
음수인 경우도 생각해서 소수점을 이하 수를 없애고 싶을때는 Math.trunc를 사용하는 것이 좋다.

this 바인딩

화살표 함수에선 this 가 바인딩되지 않는다. 전역객체를 그대로 가져감...
코드 작성보다 작성된 코드를 읽어내는 게 어렵다...

1개의 댓글

comment-user-thumbnail
2024년 1월 4일

코드 작성보다 작성된 코드를 읽어내는 게 어렵다.. 너무 공감되네요! 원래 다른사람이 작성한 코드를 읽는것이 가장 어려운게 맞는 듯 합니다ㅜㅜ

답글 달기