목록프로그래밍 언어 (55)
하다보니
template InputIterator find(InputIterator first, InputIterator last, const T& val); 에 정의됨. 범위 안에 원하는 값을 찾는다. first부터 last 전까지의 원소들 중 val과 일치하는 첫 번째 원소를 가리키는 반복자를 리턴한다. 만일 일치하는 원소를 찾지 못할 경우 last를 리턴한다. 참고로 이 함수는 string의 find 함수와 다르다. 인자 - first, last : 원소들의 시작과 끝을 가리키는 반복자들 이때 확인하는 범위는 [first,last)로 정의된다. first가 가리키는 원소는 포함되지만 last가 가리키는 원소는 포함되지 않는다. - val : 비교할 값. 이때 val의 타입 T의 경우 operator ==가 ..
pair란? 한번에 두개의 자료형을 갖는 클래스, 사용자가 직접 지정한다. 그냥 클래스 만들 때 사용하기도 하지만 스택, 큐 등에 유용하게 사용한다. pair 사용법 헤더파일 #include 생성하기 위해 pair 클래스명(자료형1변수, 자료형 2변수) ex)pair x(15,'a'); 첫번째 자료형을 보기 위해서는 클래스명.first, 두번째 자료형을 보기 위해서는 클래스명.second이다. ex)x.first / x.second 변수를 보기 위해서는 두가지 방법이 있다. 첫번째는 클래스명.first=새로운 변수, 클래스명.second=새로운 변수 ex)x.first=16; 두번째는 클래스명=make_pair(첫번째 변수, 두번째 변수)이다. ex)x=make_pair(17,'c'); stack과 qu..
promise - 자바스크립트에서 제공하는 비동기를 간편하게 처리할 수 있도록 도와주는 오브젝트이다. promise는 정해진 장시간의 기능을 수행하고 나서 정상적으로 기능이 수행되어졌다면 성공 메세지와 함께 처리된 결과값을 전달해준다. 에러가 나면 에러를 전달. promise는 자바 스크립트 안에 내장되어 있는 오브젝트 이다. 비동기적인 작업을 수행할 때 콜백함수 대신에 유용하게 사용할 수 있는 오브젝트이다. state : 프로세스가 heavy한 operation을 수행하고 있는 중인지 기능 수행을 완료한 후 성공인지 실패인지 상태에 대해 이해하는 것이 중요하다. operation이 수행 중일 때는 pending상태이고 이것을 성공적이게 끝내게 되면 fulfilled state가 된다. 만약 파일을 찾을..
자바스크립트는 동기적인 언어이다. 한 작업이 실행되는 동안 다른 작업은 멈춘 상태를 유지하고 자신의 차례를 기다리는 것을 말한다. hoisting이 된 이후로부터 작성한 순서대로 나씩 실행된다는 말이다. Memory heap과 call stack은 자바스크립트 엔진의 주요 구성 요소이다. memory heap이란? - 변수와 객체의 메모리 할당을 담당하는 곳을 말한다. call stack이란? - 함수가 호출되면 쌓이는 것이다. 대신 함수가 쌓이는 순서와 반대로 실행된다. 자바스크립트의 비동기 처리 작동원리는 여기를 참고해라. https://ljtaek2.tistory.com/142 asynchronous는 비동기적으로 언제 코드가 실행될지 모르는 것이다. 어떠한 요청을 보내면 그 요청이 끝날 때까지 기..
브라우저 위에서 동작하는 웹사이트나 웹 어플리케이션같은 클라이언트들이 서버와 어떻게 통신할 수 있는지 정의한 것이 http이다. http는 hypertext transfer protocol의 약자이다. 어떻게 이 hypertext를 주고받을 수 있는지를 규약 한 프로토콜의 하나. 클라이언트가 서버에 request를 하면 서버가 response를 보내주는 방식이다. hypertext는 하이퍼링크 뿐 아니라 전반적으로 쓰이는 문서나 이미지 파일들 모두 포함한다. 이렇게 http를 이용해서 서버에서 데이터를 받아올 수 있는 방법으로는 AJAX를 썼다. AJAX는 asynchronous javascript and xml의 약자이다. ajax는 웹페이지에서 동적으로 서버에게 데이터를 주고 받을 수 있는 기술을 의..
// Q1. make a string out of an array { const fruits = ["apple", "banana", "orange"]; //구분자가 있어도 되고 없어도 된다.기본은 ,이다. //배열의 모든 item을 string으로 나타내준다. let result = fruits.join("^"); console.log(result); //apple^banana^orange } // Q2. make an array out of a string //문자열 배열로 만들기 //seperator와 limit을 인자로 받을 수 있다. //seperator는 필수, limit은 선택 { const fruits = "🍎, 🥝, 🍌, 🍒"; result = fruits.split(",", 2); con..
// Objects // one of the JavaScript's data types. // a collection of related data and/or functionality. // Nearly all objects in JavaScript are instances of Object // object = { key : value }; 키와 값의 집합체이다. //1.Literals and properties const obj1 = {}; // 'object literal' syntax const obj2 = new Object(); // 'object constructor' syntax - new로 정의하면 object에서 정의된 constructor 호출 function print(person)..
자료구조. 어떤 방식으로 데이터를 담느냐에 따라 타입이 다양하다. 오브젝트와 자료구조의 차이. 토끼와 당근은 오브젝트. 서로 연관된 특징과 행동을 묶어놓는 것을 말한다. 비슷한 타입의 오브젝트들을 묶어 놓는 것을 자료구조라고 한다. 동일한 타입의 오브젝트만 담을 수 있다. 자바스크립트는 타입이 동적으로 정의가 되기 때문에 다양한 타입을 담을 수 있다. 하지만 이러한 방식을 좋지 않다. 한 배열 안에는 동일한 타입을 넣는다. 인덱스로 접근해서 삽입과 삭제가 편하다. 1. 배열 - 배열의 선언과 원소 검색 // 1. Declaration const arr1 = new Array(); const arr2 = [1, 2]; // 2. Index position const fruits = ['🍎', '🍌']; c..
클래스는 연관있는 데이터를 묶어놓는 container같은 것. 클래스 안에는 속성(fields)와 행동(methods)가 있다. 클래스는 fields와 methods가 묶여 있는 것. 종종 클래스 안에 fields만 들어있는 경우가 있고 이것을 데이터 클래스라고 한다. 수많은 물체와 사물들을 클래스, 오브젝트로 정의해서 프로그래밍 하는 것이 편하고 유연하게 프로그래밍이 가능하다. 구현해야할 기능들을 객체로 잘 정의해서 만들 수 있는 개발자. 클래스는 틀을 말한다. template. 클래스 자체에는 값이 들어있지 않다. 한 번만 선언한다. 클래스를 사용하여 새로운 인스턴스를 생성한 것을 object라고 한다.object는 여러번 만들 수 있다. 클래스는 정의만 한 것이어서 실제로 메모리에 올라가지는 않지만..
절차적인 언어에서는 함수가 프로그램에서 굉장히 중요한 기능을 담당한다. 그런데 자바스크립트에는 class가 추가되어서 object oriented programming language가 아닌가??!!!!!? No. 이 클래스도 자바의 class처럼 pure한 object orient가 아니고 프로토타입을 베이스로 한 가짜의 object oriented이다. 따라서 JavaScript도 절차 지향 언어 중 하나로 볼 수 있다. function이 중요한 역할을 한다. function declaration function을 sub-program이라고도 한다. input을 받아 처리 후 output을 리턴하는 것이다. function은 한가지 일을 수행해야하고 동사형태로, command형태로 이름을 지정해야한다..