지적 코딩을 위한 매우 얕은 지식
반응형

Javascript 25

JS 클래스(1)

1. 클래스와 프로토타입 - 자바스크립트에서 클래스는 같은 프로토타입 객체에서 프로퍼리르 상속하는 객체 집합 // Range 객체를 반환하는 팩토리 함수 function range(from, to) { //Object.create()를 써서 아래에서 정의하는 프로토타입의 객체를 상속하는 //객체를 생성한다. 프로토타입 객체는 이 함수의 프로퍼티로 저장되며 //Range 객체에서 공유하는 메서드(동작)을 정의한다 let r = Object.create(range.methods); //Range 객체의 시작점과 끝점(상태)를 저장 //이들은 이 객체에 고유한 프로퍼티이며 상속되지 않는다. r.from = from; r.to = to; // 마지막으로 새 객체를 반환 return r } // 이 프로토타입 객..

Javascript/Js 2022.07.09

JS 함수(4)

1. 함수 프로퍼티, 메서드 생성자 - length 프로퍼티 1) 읽기 전용 2) 정의된 매개변수 개수이며, 보통 함수가 예상하는 인자의 개수 3) 함수에 나머지 매개변수가 있다면 그 매개변수는 length 포함하지 않음 - name 프로퍼티 1) 읽기 전용 2) 함수가 정의될때 이름, 또는 익명의 함수의 경우 할당된 변수나 프로퍼티 이름 3) 디버깅이나 에러메세지 유용하게 사용 - prototype 프로퍼티 1) 모든 함수에서 프로토타입 객체를 참조하는 prototype이 존재(화살표 함수 제외) 2) 함수를 생성자로 사용하면 새로 생성된 객체는 프로트 타입 객체에서 프로퍼티를 상속 - call()과 apply() 메서드 1) 다른 객체의 메서드인것 처럼 간접적으로 함수 호출 2) 첫번째 인자는 함수를..

Javascript/Js 2022.07.07

JS 함수(3)

1. 값인 함수 - 자바스크립트의 함수는 값으로써 변수에 할당될 수 있고 객체프로퍼티, 배열 요소에 저장될 수 있으며, 다른 함수에 인자로 전달이 될 수 있음 - 함수는 프로퍼티를 가질 수 있음 // 값인 함수 -------------------------------------------------- // 함수 정의 function add(x,y) { return x + y;} function subtract(x, y) { return x - y; } function multiply(x,y) { return x * y; } function divide(x, y) { return x / y; } // 앞에서 정의한 함수 중 하나를 인자로 받아 // 그 함수에 다른 두 인자를 전달해 호출하는 함수 funct..

Javascript/Js 2022.07.02

JS 함수(2)

function sum(a) { let total = 0; for(let element of a) { // a가 이터러블이 아니면 TypeError가 일어난다. if(typeof element !== "number") { throw new TypeError("sum(): elements must be numbers"); } total += element; } return total; } sum([1,2,3]) // => 6 sum(1,2,3) // TypeError: 1은 이터러블이 아님 sum([1,2,"3"]) // TypeError: 인덱스 2는 숫자가 아님 1. 함수의 매개변수 - 선택 사항인 매개변수와 기본 값 : 선언된 매개변수보다 적은 인자로 함수를 호출하면, 인자에 대응되지 않는 매개 변수..

Javascript/Js 2022.06.26

JS 함수(1)

1. 함수의 정의 - 정의 : 한번 정의하면 몇번이고 호출할 수 있는 자바스크립트 코드 블록 - 함수 구조 1) function 함수명 (매개변수) { 함수 실행 블록 } 2) 함수명 => (매개변수) { 함수 실행 블록} // 0의 각 프로퍼티 이름과 값을 출력, undefined를 반환 function printprops(obj) { for(let p in obj) { console.log(`${p}: ${obj[p]}\n`); } } // 카르테시안 좌표 (x1,x2)과 (x2,y2) 사이의 거리 계산 function distance(x1, y1, x2, y2) { let dx = x2 - x1; let dy = y2 - y1; return Math.sqrt(dx*dx + dy*dy); } // 팩..

Javascript/Js 2022.06.25

JS 배열(3)

let a = [1,2,3] a.join() // => "1,2,3" a.join(" ") // => "1 2 3" a.join("") // => "123" let b = new Array(10); // 길이가 10이지만 요소는 없는 배열 b.join("-") // => "-----------"; 하이픈 9개 [1,2,3].toString() // => "1,2,3" ["a","b","c"].toString() // => "a,b,c" [1,[2,"c"]].toString() // => "1,2,c" 1. 배열 메서드 - 배열 이터레이터 메서드 1) forEach() : 배열을 순회하며 각 요소에 함수를 호출 //forEach() let data = [1,2,3,4,5], sum = 0; //배열 요소의..

Javascript/Js 2022.06.18

JS 배열(2)

1. 배열 요소 추가와 삭제 - 배열 요소 추가 1) 새 인덱스에 값을 할당 2) push 메서드: 마지막에 값을 추가 3) unshift 메서드 : 맨 앞에 값을 삽입하고 기존 요소를 뒤로 shift한다. - 배열 요소 삭제 1) pop 메서드 : 마지막 값을 배열에서 삭제 2) shift 메서드 : 맨 앞에 값을 삭제하고 배열에 남아있는 요소를 한 칸씩 앞으로 당긴다. 3) delete 메서드 : 인덱스가 위치한 값을 삭제되고 undefined값이 채워진다.(배열의 길이는 변하지 않는다) // 인덱스를 통해 값을 할당 let a = []; // 빈 배열로 시작 a[0] = "Zero"; // 요소를 추가 a[1] = "one"; // 요소를 추가 // push 메서드 let a = []; // 빈 배..

Javascript/Js 2022.06.10

JS 배열(1)

1. 배열의 생성 - 배열 리터럴 : 배열 요소를 대괄호 안에서 콤마로 구분한 리스트 형태 - 분해 연산자 : ...를 써서 배열 리터럴 안에서 다른 배열 요소를 넣을 수 있음 - Array() 생성자 : 1) Array() 생성자를 써서 배열 생성 2) 인자가 하나일때는 배열의 길이, 두개 이상일 때는 요소가 된다. - Array.of() : 인자의 갯수와 상관없이 인자는 모두 배열 요소로 만든다. - Array.from() : 1) 이터러블 객체나 배열 비슷한 개체를 받으면, 해당 객체의 요소로 새 배열을 만들어 반환 2) 두 번째 인자는 옵션사항이지만, 새 배열을 생성할 때 소스 객체의 각 요소를 이 함수에 전달하고 반환 값을 배열에 저장 // 배열 리터럴 let empty = []; // 요소가 ..

Javascript/Js 2022.06.06

JS 객체(3)

1. 객체 직렬화 - 객체 직렬화(serialize)는 객체를 문자열로 변환하는 작업이다. - JSON.stringify() : 객체에서 문자열로 변환(열거 가능한 프로퍼티만 직렬화함) - JSON.parse(): 문자열을 객체로 변환(date는 문자열 유지) let obj = {x:1, y:{x: [false, null, ""]}}; let s = JSON.stringify(obj); // s == '{"x":1, "y":{"z":[false,null,""]}}' let p = JSON.parse(s); // p == {x:1, y:{z: [false, null, ""]}} 2. 객체 메서드 - toString() 메서드 : 메서드의 인자가 없고, 호출되 객체의 값을 문자열로 반환 - toLocaleS..

Javascript/Js 2022.06.05

JS 객체(2)

1. 프로퍼티 삭제 - delete 연산자를 통해서 객체에서 프로퍼티를 삭제 - 자체 프로퍼티만 삭제할 뿐 상속된 프로퍼티는 삭제 하지 않는다. - 상속된 프로퍼티를 삭제하려면 반드시 해당 프로퍼티를 정의한 프로토타입 객체에서 삭제해야함 - delete는 변경 가능 속성이 false 인 프로퍼티는 제거하지 않는다. (내장 객체의 일부 프로퍼티, 변수 선언이나 함수 선언으로 생성된 전역 개체의 프로퍼티는 변경 불가) - 변경 불가인 프로퍼티를 삭제하려면 Type Error 발생(strict 모드인 경우) let obj = {x: 1}; // obj에는 자체 프로퍼티 x가 있고 toString을 상속 delete obj.x; // --> true 반환 : 프로퍼티 x를 삭제 delete obj.x; // -..

Javascript/Js 2022.06.01
반응형