JS11 Node.js 교과서 PART1 Node의 정의Node.js는 크롬 V8 자바스크립트 엔진으로 빌드 된 자바스크립트 런타임입니다.node는 서버도 아니고 JS엔진도 아니다.JS엔진을 사용 한 JS런타임이다. (런타임 : 프로그램이 실행되는 환경) JS는 원래 브라우저다. 노드 없었을 땐 JS는 원래 브라우저다. HTML에다가 스크립트,소스 등을 넣었다. 그럼 같이 읽었다 즉HTML이 없으면 JS를 못읽었다.(HTML에 종속되어 있다.)node.js를 쓰면 HTML이나 브라우저의 종속성에서 벗어난 것이다.브라우저,HTML이 없어도 실행할 수 있는 환경인 것이다.이게 왜 중요한가? JS가 app,게임 등 다양한 환경에서 만들 수 있다는 것이다. 노드는 서버 아닌가요? 엄밀히 말하면 서버가 아니라 서버로 쓸 수 있는 런타임이다.자바로 치면.. 2025. 1. 18. You don't know JS (1.1~1.4) 오늘은 첫시간이라 챕터는 1.1~1.4까지 하기로 했다.1.1 책에 대하여1.2자바스크립트 이름의 유래1.3 명세서1.4 JS의 다양한 얼굴 1.1은 생략하고 1.2부터 시작한다. 1.1 JS랑 JAVA랑 연관이 있나요?일단 javascript의 어원부터 보면 좋을 거 같다.java + script인데 각각 이런 내용이다.java : oracle의 java가 당시에 유행이어서 어그로성으로 지었다(사실 java랑 상관 없음)script : 넷스케이프에서 웹사이트의 생동감 있는 느낌을 표현하기 위해 이름을 바꿨다.이 두가지를 더해서 javascript가 된 것이다.간단히 표로 보겠다. 1995Mocha넷스케이프라는 회사의 브랜던 아이크가 10일만에 만듦1995년 후반LiveScript생동력 있는 스크립트.. 2025. 1. 16. class , 생성자 함수 , 프로토타입 메서드 사실 class는 두개 담은 바구니다.생성자 함수 = 변수만드는 함수(constructor) +프로토타입 메서드 = 만든 변수 가지고 할 함수(protoype method) 생성자함수 : 자바스크립트에서 객체를 만들고 초기화하는 특별한 함수다.생성자함수는 일종의 템플릿으로 , 여러개의 유사한 객체를 쉽게 만들 수 있게 해준다.즉 , "변수집합을 만드는 함수"인 것이다. 생성자 함수 사용법 1 1.대문자로 시작하는 이름 (파스칼케이스)생성자 함수의 이름은 보통 대문자로 시작한다. 2.this 키워드 사용생성자 함수 안에서 'this'라는 키워드는 개로 생성된 객체를 가르킨다. 3.new 키워드와 함께 사용생성자 함수는 'new'키워드와 함께 호출되어야 한다.'new' 키워드를 사용하면 새로운 객체가 생성.. 2024. 7. 19. Closer 클로저 : 실행 컨텍스트가 정상적으로 제거(종료)되지 못하는 현상 function outerFunc() { let count = 0; return function innerFunc() { count++; console.log(count); };}const counter = outerFunc();counter();counter();counter();counter();결과 :1,2,3,4 실행할 때마다 1씩 증가한다.원래 자신의 차례가 끝나면 , 콜스택에서 본인은 제거되어야 한다.근데 innerFunc 시점으로 보면, "outerFunc이 자신의 값을 참조하네?"내 값 참조 안하면 버그가 되는데? => 그럼 나 못사라지는데? => 값이 메모리에 남아야겠다.이 현상이 "closer"가 된다... 2024. 7. 19. 깊은 복사,얕은 복사 이 개념은 객체를 복사할 때 사용되는 개념이다. 얕은복사(Shallow Copy)객체의 최상위 레벨만 복사하고, 중첩된 객체는 복사하지 않고 참조를 공유합니다.즉,복사된 객체 내부의 중첩된 객체들은 원본 객체와 동일한 참조를 가진다. 깊은 복사(Deep Copy)객체와 그 객체에 포함된 모든 중첩된 객체들까지 재귀적으로 복사한다.즉, 복사된 객체는 원본과 다른 메모리 주소를 갖게 된다. 원본이 변할 때얕은 복사 : 값이 원본과 같이 변함깊은 복사 : 원본과 다른 주소값을 갖고 있기에 변하지 않음. let a = [1, 2, 3];//이렇게 변수를 냅다 갖다놔버리면 값을 공유함. (얕은 복사)let b = a;let c = [...a];//이렇게 스프레드 연산자로 배열을 없앴다가 다시 놓아주면,//메모리주.. 2024. 7. 19. 이전 1 2 다음