분류 전체보기 9

자바스크립트 구성 요소

자바스크립트 구성 요소 자바스크립트는 아래 세 가지가 합쳐진 것이다. 자바스크립트 코어(ECMAscript) 문서 객체 모델(DOM) 브라우저 객체 모델 (BOM) 1. 자바스크립트 코어 (ECMAScript) 자바스크립트의 핵심(Core) 기능이다. 문법, 타입, 선언문, 키워드 등 언어의 기본 수준에 해당하는 부분이다. ECMAScript 는 자바스크립트를 이루는 코어 스크립트 언어로, 웹 환경에서만 호스트 되는 언어가 아니다. 웹 환경은 그저 ECMAScript 가 호스트되는 환경들 중 하나일 뿐이다. 2. 문서 객체 모델 (Document Object Model) Document Object Model 의 표준은 W3C 에 의해 관리된다. 노드(node), 스타일, 속성, 이벤트, 위치 및 크기 ..

javascript 2019.11.26

자바스크립트 프로토타입 파헤치기

내 기준... 자바스크립트를 배우면서 제일 이해하기 어려웠던 개념 중 하나가 바로 이 프로토타입이다.진심 아무리 자료를 봐도 동영상을 봐도 도통 모르겠고 ㅜㅜ이해한 것 같은데 뒤돌면 까먹고 그래서 외울 지경까지 보고 나서야 손톱만큼 이해할 수 있었던... 그야말로 애증의 프로토타입이다.나 역시 프로토타입을 이해하기까지 정말 많은 고통의 나날을 보냈기 때문에 조금이라도 도움이 되었으면 하는 마음으로 이 글을 작성한다. 프로토타입이란?자바스크립트는 프로토타입 기반 언어이다. 자바에 클래스가 있다면 자바스크립트에는 프로토타입이 있다. ECMAScript6에 클래스 문법이 생겼지만 그렇다고 자바스크립트가 클래스 기반 언어로 바뀐 건 아니다.어쨌든 자바스크립트는 이 프로토타입으로 클래스 기반 언어의 상속이라는 것..

javascript 2018.08.01

typeof null은 왜 object일까?

typeof nulltypeof는 자바스크립트 변수의 자료형을 반환하는 연산자이다.책(인사이드 자바스크립트)에서는 null 또한 자료형으로, 객체가 아니라고 한다. 하지만 왜 typeof null은 object일까? console.log(typeof null); //object 검색해보니 null을 객체로 취급하는 설명이 보인다. 하지만 이는 틀린 설명이다.왜냐하면 null은 객체가 아니라 원시 타입이기 때문이다.null의 타입이 object로 나오는 건 수정할 수 없는 버그와도 같은데,설명을 하자면 자바스크립트의 탄생까지 거슬러 올라가야 한다.왜냐면 typeof null 버그는 자바스크립트의 첫 번째 버전의 잔재이기 때문이다. 자바스크립트의 타입 태그자바스크립트가 처음 탄생할 적에, 자바스크립트 변수의..

javascript 2018.07.18

백준 11720: 숫자의 합

1. 문제N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 2. 솔루션다른 언어는 어떤지 모르겠는데, 자바스크립트는 문자열을 배열처럼 다룰 수 있다. 문자열 개수도 필요가 없는데... 아무튼. for문으로 배열처럼 다루어 전부 다 더해버리기. 이때 int로 parsing을 해주어야 한다. 3. 코드 var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().split("\n"); var n = input[0]; var numbers = input[1]; var sum = 0; for(var i = 0; i < n; i++) { sum += Number(numbers[i]); } cons..

알고리즘 2018.07.13

백준 2439: 별찍기 - 2

1. 문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 2. 솔루션1. 첫 번째 for문은 전체를 a번 반복.2. 두 번째 for문 (변수가 j)은 공백 추가함3. 세 번째 for문 (변수가 k)은 공백 뒤에 별을 추가함4. 첫 번째 for문이 끝날 때마다 줄 바꿈 문자 추가5. 출력 이 방법 말고도, 첫 번째 for문과 두 번째for문을 비교해서 하는 방법도 있음 3. 코드 var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString(); var a = parseInt(input); var star = ""; for(var i = 1; i = i; j--) { star += " "; } for(..

알고리즘 2018.07.13

기술 면접 준비하기 - 자바스크립트

면접을 앞두고 그동안 헷갈렸던 개념들을 다시 정리해 보았다.(혹시나 틀린 부분이 있다면 댓글 주세요!) ==와 ===의 차이점을 설명하세요.== 는 자동 형변환 이후 체크, ===는 형변환 없이 그대로 체크합니다. undefined와 null의 차이를 설명하세요.undefined는 변수가 정의되었지만 아무 값도 할당받지 않은 상태이고, null은 null이라는 빈 값을 할당한 상태입니다. (참고로 null은 자료형 중 하나로, 비어있는 변수임.) 호이스팅(Hoisting)에 대해서 설명하세요. 변수 선언문, 변수 초기화를 무조건 함수 최상단으로 끌어올리는 것입니다. 선언이나 초기화시만 적용되고 변수의 값은 끌어올리지 못합니다. 프로토타입(Prototype)에 대해서 설명하세요.자바스크립트는 프로토타입 기..

dev 2018.07.04