Javascript

    defer과 async 사용해 HTML에서 JavaScript 코드 로딩 시점 변경하기

    HTML에서 JavaScript 코드 로딩 시점 순차적으로 로딩되는 HTML HTML에서 JavaScript 코드의 로딩은 HTML 코드가 작성된 순서대로 이루어진다. 순서대로 이루어진다는 것은 위에서 부터 아래로 내려가면서 구성요소를 인식한다는 뜻이다. 예를 들어 아래와 같은 HTML 파일이 있다고 해보자. 이 HTML에서는 head부터에서 script가 추가되는데 이 스크립트는 numPlayers라는 변수를 가지고 이 변수는 document에서 "num-players"라는 아이디를 가진 구성요소를 가져온다. 참가자 수: 하지만 이 코드에서 numPlayers는 유효하지 않다. 이유는 num-players라는 아이디를 가진 구성요소가 body부에 존재하기 때문이다. 이 때문에 numPlayers는 아무..

    [JavaScript] undefined, null, NaN의 차이 알아보기

    undefined, null, NaN의 차이 알아보기 JavaScript를 다루면서 undefined, null, NaN 이라는 값을 자주 보게 된다. 이 값들은 JavaScript를 다루면서 가장 중요한 값들이고 각각 중요한 의미를 담고 있다. 이번 글에서는 이들의 차이에 대해 다루어 보고자 한다. undefined 이란 무엇인가? 초기화가 되지 않을 시 자동으로 할당되는 값 undefined undefined는 변수에 값을 설정하지 않은 경우 자동으로 할당되는 값이다. const는 값을 만들면서 초기화를 같이 해야 하므로 undefined가 될 수 없지만 let이나 var로 선언된 변수는 변수 설정과 동시에 값을 할당하지 않아도 되므로 undefined가 될 수 있다. 예를 들어 아래와 같이 변수를 ..

    JavaScript Object과 Map의 차이는 무엇일까?

    JavaScript Object과 Map의 공통점과 차이 JavaScript의 Map과 Object는 Key-Value 쌍으로 동작한다는 점에서는 비슷하지만 다른 점이 많다. 공부하면서 이 부분이 많이 헷갈려서 이번 글에서는 이 둘의 차이가 무엇인지에 대해 다뤄보고 어떤 때 Object를 써야 하고 어떤 때 Map을 써야하는지 살펴보고자 한다. Object과 Map의 공통점 Map과 Object의 값에 접근하기 위한 시간 복잡도 먼저 내가 제일 궁금했던 점은 Map과 Object의 값에 접근하기 위해서는 Key를 사용해야 하는데 이때 시간 복잡도가 다른가 하는 점이었다. 알아본 결과 N개의 원소가 있는 Map과 Object의 값의 접근을 위한 시간 복잡도는 O(1)로 같다. 물론 해싱 값이 모두 같은 값..

    JavaScript Map 데이터 구조 사용법 한 번에 정리하기 : 생성, set, get, has, delete, clear

    JavaScript의 Map 데이터 구조와 의의 JavaScript의 Map 데이터 구조는 키-값(Key-Value) 쌍을 가진 데이터 구조이다. Map 데이터 구조는 키 생성 시 키에 대해 해싱을 사용해서 키의 해시값의 중복이 되지 않는 이상 Value에 접근하기 위해 O(1)의 복잡도를 가질 수 있다는 점에서 프로그램의 최적화를 위해 많이 쓰인다. 또한 키의 해시값이 중복이 되더라도 중복인 대상 K개에 대해서만 O(K)의 복잡도를 가지기 때문에 값 접근을 위한 시간을 매우 낮출 수 있다. 이 때문에 대부분 언어들에서는 무조건 Map 데이터 구조를 지원하고 있다. 가끔 Map 대신 Dictionary로 쓰는 Swift 같은 언어가 있기는 하지만, JavaScript, Java, Kotlin 등의 언어들..

    [JavaScript] 객체 사용법 한 번에 정리하기 : 생성, 속성 추가와 삭제, Class 사용해 객체 생성하기, 속성값 접근하기

    JavaScript와 객체 Javascript는 객체 기반 스크립트 언어이며, Javascript를 이루는 원시 값(String, Boolean, Number 등)을 제외한 데이터 구조는 객체 기반으로 만들어진다. 앞서 살펴본 Array 또한 push, pop 등이 있는 객체이며, 기본적인 객체와 조금 다르게 동작하는 특별한 객체이다. 이번 글에서는 이러한 객체를 생성하고 조작하고 속성에 접근하고 삭제하는 방법들에 대해 다루려고 한다. 이번 글은 Javascript를 사용하려면 필수적이고 매우 중요한 내용들이다. 꼭 코드를 쳐보면서 익히도록 하자. 객체 생성하기 빈 객체 생성 후 직접 속성 추가하기 JavaScript 객체를 생성하기 위해서는 {}를 사용하면 된다. {}만으로 객체가 선언되며, 객체 내부..