본문 바로가기

Coding/JavaScript 3

[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.
[Javascript] 함수 선언 아래와 같은 방식으로 선언하여 사용할 수 있다. function 함수이름 { // ... return 반환값; } 다만, Java에서의 메소드 오버로딩(참고)과 같은 것을 허용하지 않기 때문에 같은 이름의 함수는 하나만 정의하는 것이 좋다. 인수 전달 방식 원시형 타입(number, string, boolean)은 값(call by value)으로 전달된다. 반면, 객체는 참조(call by reference)로 전달된다. Return return이 없으면 암묵적으로 undefined를 반환한다. 익명 함수, 기명 함수 함수를 표현식처럼 사용할 수 있다. 주로 이벤트 처리를 위해 많이 사용되는 방법이다. 익명 함수와 기명 함수로 구분할 수 있는데 함수 내부에서 스스로 호출할 수 있는지/없는지가 가.. 2023. 3. 22.