본문 바로가기

지금, 개발하기/Javascript17

javascript] 객체의 비교 JavaScript에서 객체를 비교하려고 한다면 몇가지 주의해야 할 점이 있다. 다른 변수들과 달리 객체는 참조 타입이기 때문에 값이 아닌 메모리 주소를 비교한다. 따라서 두 개의 객체를 단순히 == 또는 === 연산자로 비교하면 엉뚱한 값이 나올 수 있다. 아래 예시를 살펴보자 1. 문제점 1. 참조비교 아래 예시를 보면 두 객체가 동일한 속성을 가지고 있지만 다른 메모리 주소를 가리키고 있기때문에 비교 결과가 false가 나온다. const obj1 = { name: 'Kim' }; const obj2 = { name: 'Kim' }; console.log(obj1 == obj2); // false console.log(obj1 === obj2); // false // obj1과 obj2는 동일한 속.. 2023. 5. 19.
javascript] this 바인딩 파헤치기 Javascript의 this 바인딩은 다른 언어(C#, C++, JAVA, .. )와 달리 동적으로 결정됩니다. 그래서 조금은 헷갈릴 수 있는데 결론부터 말하자만 ‘Javascript의 This’는 ‘호출한 놈’을 의미합니다. 먼저 기본값(?)으로 쓰이는 ‘호출하는 놈’의 의미를 알아보고, 그 다음에 예외인 경우 어떻게 동적으로 바인딩되는지 알아보겠습니다. Javascript에서 this란? this는 '호출한 놈'을 의미합니다. 만약 '호출한 놈'이 없으면, 기본값인 '전역객체(window)'를 출력합니다. 예외 사항: ①전역스코프에서 this ②strict mode ③화살표함수 1. this는 호출한 놈 function testThis(){ console.log(this) }; const stude.. 2023. 1. 13.
javascript] 함수의 인자, Rest Parameter, Spread 1. 함수의 인자 parameter : 함수를 선언할 때 외부로 부터 값을 전달받기 위해 작성하는 값으로, 아래의 (a, b, c)를 의미한다 function sum(a, b, c){ return a + b + c }; argument : 함수를 호출 할 때 parameter로 전달하는 값으로, 아래 예시의 (1, 2, 3)을 의미한다 // sum 함수 호출 sum(1, 2, 3); 2. 함수의 기본값 함수를 선언할 때, parameter에 기본값을 미리 설정해놓을 수 있다. ex) (name='hana', age=20) parameter에 기본값을 설정해놓으면, 함수를 호출 시 argument의 값이 없거나 undefined인 경우 기본값을 매개인자로 대신 사용한다. function greeting(n.. 2023. 1. 4.
javascript] for문의 break vs continue, while vs do while 1. for문의 break vs continue for문 - break for (let i = 0; i = 2)의 조건이 false가 될때까지 루프를 돈다 let num = 5; while(num >= 2){ .. 2022. 12. 16.