Web/Vanilla JS

    JS는 어떻게 배열의 사이즈를 지정하지 않고 사용할 수 있을까?

    JavaScript의 Array ObjectsECMAScript 2025 문서엔 다음과 같이 나와있습니다. ECMAScript® 2025 Language SpecificationThe first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or truncate. These legacy implicit conversions are maintained for backward compatibility, but not provided for BigItc39.es"Arrays are exotic objects that give..

    일급객체, 일급함수

    1. 일급 객체란? 일급 객체란, 다음과 같은 조건을 만족하는 개체를 말한다. 변수나 데이터 구조 안에 담을 수 있다. 파라미터로 전달될 수 있다. 반환값으로 사용할 수 있다. 동적으로 프로퍼티 할당이 가능하다. 2. 일급 함수란? 일급 함수란, 일급 객체의 조건을 만족하는 함수를 의미한다. JS 에서는 함수가 일급 객체이다. 그 말은, JS에서는 다음과 같은 작업들이 가능하는 의미이다. 함수를 변수나 데이터 구조 안에 담을 수 있다. 함수는 파라미터로 전달될 수 있다. 함수는 반환값으로 사용할 수 있다. 사실 이렇게 글로 보면 이해가 잘 가지 않을 수도 있다. 하지만 JS를 사용해 코드를 짜본 사람이라면 어쩌면 이미 위의 개념들을 사용하고 있을 수도 있다. 각각의 예시를 보자. 1) 함수를 변수나 데이..

    호이스팅(Hoisting)

    1. 호이스팅이란? [ MDN - Hoisting ] 호이스팅 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN 자바스크립트 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정을 말합니다. developer.mozilla.org 위 MDN 사이트에 따르면 호이스팅은 "인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정" 이라고 한다. 위 정의를 읽고 "아 그냥 변수나 함수들을 맨 위에 갖다놓고 사용하는거구나~" 라고 생각하고 넘어갈 수도 있다. (나도 그랬다...) 하지만 '선언문' 이라는 키워드를 굳이 넣어야 했을까? 라는..

    Symbol

    1. Symbol 이란? Symbol은 원시타입 데이터로, 유일무이한 값을 만드는데 사용된다. (Symbol의 뜻이 상징이라는 뜻이니까...) 그리고 이 값은 익명의 객체 속성(object property)을 만들 수 있는 특성을 가졌다. 한 마디로 객체의 키값은 문자열, 뿐만 아니라 Symbol형도 가능하다. Symbol() 을 사용하면 Symbol 값을 만들 수 있다. // id는 새로운 심볼이 됩니다. let id = Symbol(); 아래와 같이 Symbol을 만들 때 인자를 줄 수 있는데, 이 인자는 Symbol을 나타내는 설명, 이름이다. 이 Symbol 이름은 어떠한 것에도 영향을 주지 않는 단순 '이름'역할만 한다. 디버깅시에 많이 쓰인다. // 심볼 id에는 "id"라는 설명이 붙습니다...

    얕은 복사와 깊은 복사(Shallow Copy & Deep Copy)

    서론 얕은 복사와 깊은 복사에 대해 정리하다보니 여러 개념이 얽혀있고, 그에 대한 이해가 필요하다는 것을 알게됐다. 나도 얕은 복사와 깊은 복사에 대해 굉장히 많이 헷갈렸었고, 지금도 가끔 헷갈리는 개념이므로 처음부터 정리하고자 한다. 원시타입과 참조타입 Javascript 에는 원시타입과 참조타입이 존재한다. 각각 타입에 무엇이 존재하는지 알아보고, 그 둘의 차이점을 안다면 이번 포스팅의 주제인 얕은 복사와 깊은 복사에 대해 이해하기 쉬워질 것이라 생각한다. 1. 원시타입 Javascript의 원시타입에 다음과 같은 타입들이 존재한다. string number bigint boolean undefined null symbol (ES6+) 원시타입은 메모리에 저장될 때 '불변성'을 가지고 있다. 일단 아..

    Object Method

    Object Object 클래스는 JavaScript의 데이터 유형 중 하나를 나타낸다. 다양한 키 모음 및 더 복잡한 엔티티들을 저장하는 데 사용된다. JS의 거의 모든 객체는 Object의 인스턴스이다. JS는 객체 기반의 스크립트 언어이다. 원시 타입을 제외한 나머지는 모두 객체이다. 한마디로 JS는 객체빼면 시체다... 객체는 키(key)와 값(value)쌍으로 이루어진 프로퍼티(property)들의 집합이다. const obj = { key: value, ... }; Object.entries() for...in와 같은 순서로 주어진 객체 자체의 enumerable 속성 [key, value] 쌍의 배열을 반환한다. Object.entries() 에 의해 반환된 배열(array)의 순서는 객체가..