목록언어/자바스크립트 (8)
나 이것도 몰랐네..
새로운 Array 생성1. 값이 정해지지 않은 배열 생성하기let arr1 = [];let arr2 = new Array();console.log(arr1);// Expected output : Array []console.log(arr2);// Expected output : Array [] 대괄호('[]')를 이용하거나 Array() 생성자 함수를 통해 새로운 배열을 생성할 수 있다.Javascript에서는 배열의 크기가 동적으로 변경될 수 있기에 인덱스로 배열 내에 요소를 추가할 수 있으며 값이 지정되지 않은 인덱스의 경우, undefined의 값이 출력된다. 2. 초기 배열의 크기를 지정한 배열 생성하기let arr3 = [,,,];let arr4 = new Array(4);console.log(..
백준 온라인 문제풀이 사이트에서 자바스크립트를 이용해서 알고리즘을 풀려고 했더니 자바스크립트 언어는 없고, node.js밖에 없어 사용법을 찾아보았다. 1. fs를 활용하여 입출력하기var fs = require('fs');var input = fs.readFileSync('/dev/stdin').toString().split(' ');var a = parseInt(input[0]);var b = parseInt(input[1]);console.log(a+b); 이 방식은 백준 언어 정보에 나와있는 방식으로, 노드의 파일 시스템에 접근할 수 있는 모듈을 사용하는 것이다. 모듈이기 때문에 require을 통해 fs를 불러온다파일을 읽는 함수는 readFile과 readFileSync가 존재하는데, read..

이벤트(Event) 프로그래밍하는 시스템에서 일어나는 사건(action) 혹은 발생(occurrence) 애플리케이션이 특정 타입의 이벤트에 대해 반응하여 어떤 일을 하고 싶다면 해당하는 타입의 이벤트가 발생했을 때 호출된 함수를 브라우저에 알려 호출을 위임할 수 있음 이벤트 핸들러(Event Handler) : 이벤트가 발생했을 때 호출될 함수 이벤트 핸들러 등록 : 이벤트가 발생했을 때 브라우저에 이벤트 핸들러의 호출을 위임하는 것 이벤트 타입 이벤트 타입은 약 200여 가지가 존재 그 중 사용 빈도가 높은 이벤트로는 마우스 이벤트, 키보드 이벤트, 포커스 이벤트, 폼 이벤트(form event), 값 변경 이벤트, DOM 뮤테이션 이벤트, 뷰 이벤트, 리소스 이벤트가 존재 상세 목록은 MDN 사이트..
스코프(Scope) 참조 대상 식별자를 찾아내기 위한 규칙 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위를 결정 스코프는 전역 스코프(Global Scope)와 지역 스코프(Local Scope)로 나뉨 구분 설명 스코프 변수 전역 코드의 가장 바깥 영역 전역 스코프 전역 변수 지역 함수 몸체 내부 지역 스코프 지역 변수 변수는 자신이 선언된 위치에 의해 자신이 유효한 범위인 스코프가 결정 스코프 체인 스코프가 함수의 중첩에 의해 계층적으로 연결된 것을 의미 함수 몸체 내부에서 정의된 함수를 "중첩 함수(nested function)", 중첩 함수를 포함하는 함수를 "외부 함수(outer function)"이라 부름 변수를 참조할 때, 스코프 체인을 통해 ..
데이터 타입 자바스크립트의 데이터 타입은 원시 타입(Primary Type)과 참조 타입(Reference Type)으로 분류됨 1. 원시 타입(Primary Type) Object를 제외한 모든 데이터 타입은 언어 최하위 수준에서 직접 표현되는 불변값(immutable value, 값 변경 불가능) 변경 불가능한 값은 변수가 아닌 원시 값을 의미 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장됨 변수의 값을 재할당 시, 새로운 메모리 공간을 확보하고 재할당한 원시 값을 저장 후, 변수가 새롭게 재할당된 원시 값을 가리키도록 변경 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달 Type 종류 : Null, Undefined, Boolean, Numbe..
변수 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름 식별자 변수를 구분할 수 있는 변수명 식별자는 문자, 달러($), 밑줄(_)로 시작해야하며 대소문자를 구분하고, 특수문자를 제외한 문자, 숫자, 밑줄(_), 달러($)를 포함할 수 있음 예약어(for, if ,function 등)는 사용이 불가능 네이밍 컨벤션 카멜 케이스(camelCase) exampleName 스네이크 케이스(snake_case) example_name 파스칼 케이스(PascalCase) ExampleName 헝가리언 케이스(typeHungarianCase) strExampleName(type + identifier) 변수 선언 자바스크립트에서의 선언은 3가지 종류가 있음 1. v..

동기와 비동기 동기(Synchronous) 요청이 들어오면 스레드(Thread)에서 순차적으로 작업을 수행하고, 해당 작업이 수행중이면 다음 작업은 전 작업이 끝날 때 까지 기다렸다가 수행 ※ 스레드(Thread) : 프로세스 내에서 실행되는 흐름의 단위를 의미 비동기(Asynchronous) 요청이 들어오면 스레드에서 이전 요청에 의한 작업이 끝나지 않아도 계속 요청을 받음, 이 후 작업 종료 이벤트 발생 시, 해당 요청을 처리함 JavaScript의 동작 원리 JavaScript는 Synchronous이고, Blocking이며, Single-threaded한 언어 Single-threaded란, 하나의 프로그램은 하나의 코드만 실행할 수 있음을 의미 싱글 콜 스택(call stack)을 의미 Java..
"자바스크립트는 동기인가요 비동기인가요?" 면접장에서 이 질문을 받고, 잠깐동안 머리가 멈췄었다. '비동기는 일 여러개를 한번에 처리하는거 아닌가? 자바스크립트는 코드 위에서부터 아래로 하나씩 실행하니까 동기인가? 아 그거랑 상관없나? 비동기가 이게 아닌가? 동기랑 비동기가 정확히 뭐였지....? 아 어차피 둘 중 하나일텐데 그냥 찍어봐? 아냐 틀리면 그게 더 큰 일이지...' 이런 생각을 하다가 아무 말도 못하고 질문이 넘어갔다. (질문의 3분의 2는 대답 못하고 모르겠다고 넘겼었는데 특히 이 질문이 머리속에 오래 남았다) 면접이 끝나고, 해당 질문이 적힌 종이를 가져가서 대답을 찾아가면 도움이 많이 될 거라며 챙겨가도 된다는 얘기를 듣고 종이를 챙겨서 나오는 길에 검색했다. '자바스크립트는 동기? 비..