본문 바로가기

자바스크립트 63

[자바스크립트] 객체를 복사하는 다양한 방법에 대하여 자바스크립트의 객체의 복사는 크게 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy)로 나눠진다. 다음 예를 보자 let stock = { name : "apple" }; let myStock = stock; console.log(stock.name) // apple console.log(myStock.name) // apple console.log(stock.name == myStock.name) // true console.log(stock.name === myStock.name) //true 우리가 흔히 알고 있듯이, 객체의 변수가 다른 변수에 할당되어 Call by reference (참조) 가 일어났고 한 데이터를 변경하면 같은 참조를 가진 값도 변한다. let stock = {.. 2021. 2. 22.
[자바스크립트] primitive, 그 중에서도 null 에 대하여 null 은 자바스크립트의 원시값(primitive) 중 하나로, 어떤 값이 의도적으로 비어있음을 표현하여 boolean 연산에서는 false 로 취급하는 값입니다. null 에 대해 깊게 들어가기 전에 원시값(primitive)에 대해 간략히 설명하고 넘어가겠습니다. In JavaScript, a primitive (primitive value, primitive data type) is data that is not an object and has no methods. There are 7 primitive data types: string, number, bigint, boolean, undefined, symbol, and null. MDN 공식 사이트를 보면 자바스크립트에서는 7개의 원시값(pr.. 2021. 2. 17.
[자바스크립트] 객체에 조건부로 속성을 추가하는 방법에 대해 들어가며 가끔씩 조건에 따라 달라지는 객체가 필요할 때가 있습니다. If else로 하나씩 넣기 let obj = {} if(includeA) { obj = { a : 3, b : 3 } } else { obj = { b : 3 } } 코드 그대로 includeA가 true 이면 {a : 3} 이 포함되고 아니면 없는 경우인데요. 위의 예시처럼 if else로 조건을 추가할 경우에, 조건이 들어날수록 if else이 2배씩 늘어난다는 치명적인 단점이 있습니다. 삼항연산자로 넣어주기 그래서 일반적으로 아래와 같이 삼항연산자를 이용해 각 조건별로 값을 넣어주는 방식을 사용하기도 합니다. let includeA = true; let includeB = false; let obj = { a : includeA .. 2021. 2. 15.
[인터뷰] 자바스크립트의 내부 동작 원리에 대해서 설명하라 자바스크립트... 처음 입사하고 맞이한 이 친구,,, 일 년을 넘게 보고 있자니 이젠 익숙을 넘어 친근하기까지 한 언어가 되어버렸다. 하지만 이제껏 내부 구조를 살펴볼 생각보다는 var 부터 선언하기 급급했던 과거를 반성하며 이제서라도 내부 구조에 대해 알아보자. 한 줄 역사로, 자바 인척 하고 싶었던 스크립트 언어이다. 책 모퉁이에서 한두번씩은 싱글 스레드, 이벤트 루프에 대해서 들어봤으리라 생각한다. 자바스크립트의 내부 동작을 설명하는 가장 핵심 키워드이기도 하다. 우리가 일반적으로 보는 브라우저는 2가지 엔진으로 구성되어 있다. 자바스크립트를 해석하는 JavaScript 엔진 + 화면을 그리는 Rendering 엔진 이 중에 우리가 집중한 것을 자바스크립트를 해석하는 JavaScript 엔진, 그중.. 2021. 1. 30.