본문 바로가기

전체 글

(34)
전역 객체 전역객체(Global Object)지금까지 설명했던 객체는 모두 사용자가 필요에 의해 직접 정의한 사용자 정의 객체(User-defined Object) 관련 내용이었다. JS는 자체적으로 브라우저에 화면을 띄우거나 네트워크 전송, 컴퓨터의 파일을 읽는 등의 작업을 수행할 수 없다.JS코드는 런타임 환경에서 실행되며, 이러한 기능을 수행하기 위해서는런타임 환경에서 제공하는 호스트 객체(Host Object)가 필요하다.브라우저 환경에서는 window.location 과 같은 브라우저가 제공하는 호스트 객체 웹 API가 필요하며,Node.js 환경에서는 Node가 제공하는 Node API를 활용하게 된다. JS에는 유용한 기능을 제공하는 내장 객체(Built-in Object)가 기본적으로 존재한다. 내장..
자바스크립트 Class 문법 지난 포스팅에 생성자함수에 대해서 설명했었다.만들고자 하는 객체의 틀을 정의해두고 변동되는 데이터는 매개변수로 두고인자를 받아서 객체를 생성하는 방법으로 객체를 생성하는 방법 이었다.생성자함수는 JS가 prototype기반의 객체지향 프로그래밍 언어이기 때문에 가능한 것이다. 대부분의 객체지향 프로그래밍 언어(JAVA, C#, Kotlin 등)에서는prototype이 아닌 class를 기반으로 객체지향 프로그래밍이 가능하다 ES5까지의 JS에서 이처럼 객체를 생성하는 방법은 생성자함수가 유일했지만ES6부터는 JS에서도 class문법이 도입되어 사용할 수 있게 되었다.그 이유는 당연히 class 문법에 익숙한 개발자들이 JS 프로그래밍을 수월하게 하기 위함이다. JS로 프로그래밍을 시작한 사람들이 clas..
객체의 메서드와 동적생성 속성(Property)과 행동(Method) 객체는 서로 연관있는 데이터를 key와 value 로 묶어 주기 위해 사용한다. 그리고 객체의 value에 원시 데이터를 정의하게 되면 그것은 객체를 구성하는 하나의 속성(property)이 된다.복합데이터 역시 정의할 수 있으며복합데이터 중 함수를 정의할 수도 있다. 함수를 정의하게 되면, 이를 메서드(method)라고 한다let profile = { name: 'Alice', age: '25', introduce: function () { console.log(`Hi my name is Alice and I am 25 years old`); }}console.log(profile.introduce()); // Hi my name is Alice and I..
자바스크립트 이것저것 당연히 알아야 하는 중요한 부분이지만, 순간 어?뭐였더라 했던 문법들 필기하여 복습하는 순간을 가져보자  복합할당연산자산술연산을 함과 동시에 결과값을 재할당한다.let x = 10;x += 5; // x = x + 5; 와 동일하다.console.log(x); //15 순서를 바꿔쓰면 딱히 아무런 기능이 없다.let x = 10;x =+ 5; // 그냥 x = 5;console.log(x); // 5 당연히 덧셈 연산자는 문자열도 누적 가능하다.덧셈을 제외한 연산자 등호는 NaN을 반환한다let str1 = "안녕";let str2 = "하세요";console.log(str1 += str2); // 안녕하세요let str3 = "Hello";let str4 = "lo";console.log(str3 -=..
자바스크립트 객체 일단 객체를 설명하기 전에 데이터 타입을 짚고 넘어가 보자자바스크립트에서 데이터 타입은 크게 두 가지 카테고리로 나뉜다.원시 데이터 (Primitive Data)원시 데이터는 기본적인 유형의 데이터이며, 단일데이터라고도 한다원시 데이터는 다음과 같은 유형이 있다.String: 문자열. ex) '안녕하세요', "Hello"Number: 숫자  ex)  1, 2, 3Boolean: 참(true) 또는 거짓(false)Null: 의도적으로 값이 없음을 나타냄Undefined: 변수가 선언되었지만 값이 할당되지 않은 상태Symbol: 고유하고 변경 불가능한 값으로, 주로 객체의 키로 사용 객체 데이터 (Object Data)객체 데이터는 복합적인 구조를 가진 데이터이다. 그렇기에 복합데이터라고도 한다.객체, 배..
데이터 타입 변환 암시적 형 변환의도하지 않았지만 자동으로 변환되는 상황. 산술 연산자에 의해 발생한다.자동 형 변환이라고 하기도 하고 직역하면 타입 강제 변환(Type Coercion) 이다예시)let result = 1 + '2';console.log(result); // 12 console.log(typeof result);// stringnumber인 1과 string인 2을 더했는데 string인 12가 되었다. JS에서 +연산자는 number의 덧셈 연산을 수행할 수도 있지만, 문자열을 결합하는 역할도 있다.다른 타입의 값을 string과 결합할 경우, string으로 타입이 변환된 후 두 문자열이 결합된다.  다른 산술연산자( -, *, /, % )의 경우에는 반대로 문자열이 숫자로 변환된 후 연산이 수행된다..
node.js 설치로 console 출력 바로 확인하기 JS 학습주간에서는수많은 코드 작성과 테스트가 있을 예정이다이 모든 과정을파일 저장후 브라우저에서 새로고침 후 확인 하는 식으로 할 수도 있지만node.js를 이용한다면 코드 결과 확인 과정을 단축할 수 있다. https://nodejs.org/en Node.js — Run JavaScript EverywhereNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org   설치 후 VSC를 켜서 터미널에 node -v 를 입력해준다. 설치가 잘 되었으면 버전이 나온다.이제 여기서 node 파일명 를 입력하면 console 값들을 바로 터미널에서 확인할 수 있다. 이렇게 파일명을 입력해서 출력이되는것 뿐만아니라node..
프로젝트 후기 사실 지금까지 든 생각은 우왕좌왕 하고 있다는 생각이다. 제대로 집중하지 못한것도 그렇지만긴장을 하지 않았다?집중력이 부족하다?작은 목표를 세우는 데에 있어서 서툴어서 그런걸까중심이 잡히지 않은 채로 뭔가를 하는 느낌이다. 사이트도 만들었고, 발표도 했는데내가 어떻게 했는지 모르겠다. 뭔가를 배우는것에는 자신이 있었는데마음에 없는 말을 하거나 사람을 쉽게 사귀고 남들에게 관심을 끄는데에는 소질이 없다는걸 좀 느꼈다 교육에 집중한 프로젝트였기에 역할의 정확한 분배가 없었던것도 프로젝트를 아주 애정할 수 까진 없었던 이유 중 하나였던것같다.내가 할 수 있는 분야과 남이 할 수 있는 분야가 따로 없는. 그러니까포지션이 같은 사람들로 구성되어 뭔가를 제작해 본것 자체가 처음이었다. 그렇다고 불만으로만 가득찬 프..