본문 바로가기

JavaScript 10

[Javascript] null, undefined undefined vs null undefiend와 null이 비슷한 것 같지만 다르다. 명시적으로 없음을 나타내기 위해서는 undefined보다는 null이 좋다. undefined 값이 정의된 적 없음을 나타낸다. typeof undefined : 'undefined' null 값이 없음을 나타낸다. typeof null : 'object' 대입한 적 없는 변수나 속성과, 명시적으로 '없음'을 나타내는 경우가 구분되어야 코드의 의미가 명확해진다. 그렇기에 null과 undefiend를 구분해서 사용하는 것이 좋다. equality, identity 비교 시에도 차이가 발생한다. equality 비교 null == undefined : true indentity 비교 null === undefined .. 2024. 1. 11.
[Javascript] Falsy, Truthy, && Falsy, Truthy js에서 아래 값들은 false로 판단된다. 이러한 값들을 Falsy라 한다. false null undefined NaN 0 empty string('') 반대로 true로 판단되는 값들을 Truthy라고 한다. if나 3항 연산자에서 truthy가 true, falsy가 false로 판단되기에 null, undefined 외에도 0, empty string 등을 사용할 때 주의해야한다. && js에서 논리적 AND(&&)는 단순히 true, false만을 반환하는 것이 아니기에 주의가 필요하다. &&는 연결된 모든 피연산자가 false이면 false를 반환하고, true이면 맨 마지막 피연산자의 값을 반환한다. 즉, true && expression이라면 expression가.. 2024. 1. 11.
[JavaScript] 비동기(Asynchronous) 원리 JS의 비동기 원리 Single Thread, But Asynchronous JS는 single thread 이지만, asynchronous한 언어이다. 싱글 스레드로 동작하지만 Web API와 Event Loop를 통해 멀티 스레드"처럼" 동작할 수 있다. JS + Browser 구조 JS는 다른 언어와 유사하게 code area, call stack, memory heap을 이용하여 동작한다. Code area에는 실행한 JS 코드가 저장된다. Call stack을 통해 context가 관리되고 primitive type의 data가 저장된다. Memory heap을 통해서는 reference type(배열, 객체, 함수 등)의 데이터가 저장된다. Heap 영역에 객체의 데이터를 저장하고 call s.. 2023. 5. 31.
Entity, DTO, DAO, VO Entity, DTO, DAO, VO Servlet, Spring 등을 사용하면 로직 구현이나 데이터 교환을 위해 Entity, DTO, DAO, VO를 사용하게 된다. 각각을 한마디로 요약하면 아래와 같다. Entity : 테이블 DTO : Data Transfer Object → 데이터 교환용 DAO : Data Access Object → 데이터 접근용 VO : Value Object → 데이터 교환용 (Read-only 속성의 DTO) Entity Database의 테이블에 해당하며, 주로 하나의 테이블에 하나의 entity를 정의한다. 테이블과 최대한 동일하게 클래스를 생성하고, 주로 테이블에 가지는 column들을 필드로 가진다. 주의할 점 다른 클래스를 상속받거나 구현체여서는 안되며, 데이터.. 2023. 4. 3.
[CSS] 스타일 우선순위 CSS Style 우선순위 전체적으로 !important 키워드를 사용한 스타일 inline style id class, 수도 클래스 tag, 수도 엘리먼트 동일 우선순위 중 같은 파일 내에서 나중에 작성된 것 (파일 아래에 있는 것) 먼저 작성된 것 (파일 위에 있는 것) 2023. 3. 27.