반응형

프로그래밍/JavaScript 11

11_자바스크립트 : 배열, 주요메소드 (indexOf , forEach, map, pop...)

1 . 배열 생성 방법 ( 1 ) 리터럴 : const arr = [ ' ', ' ', ' ' ]; ( 2 ) 생성자 함수 : const arr = new Array(인수); 인수가 1개이고 숫자인 경우 const arr = new Array(10); => [ ] 인수가 2개 이상이거나 숫자가 아닌 경우 const arr = new Array(1, 2, 3); => [ 1, 2, 3, '하' ] ( 3 ) Array.of 메소드 : Array.of(인수); console.log(Array.of(5)); console.log(Array.of(100, 2, 5)); console.log(Array.of("hello", "banana")); => [ 5 ] [ 100, 2, 5 ] [ 'hello', 'ban..

10_자바스크립트 : Prototype (숨김 프로퍼티, 일반 프로퍼티, 생성자 함수 프로토타입)

1. [[ Prototype ]] - 자바스크립트의 객체는 [[Prototype]]라고 하는 숨김 프로퍼티를 갖음 - 이 프로퍼티의 값은 null이거나 다른 객체를 참조 - 다른 객체를 참조하는 경우 참조 대상을 프로토 타입이라 함 - object에서 프로퍼티를 읽으려 할 때 해당 프로퍼티가 없으면 자바스크립트는 자동으로 프로토타입에서 프로퍼티를 찾음(프로토타입 상속) const user = { activate : true, login : function(){ console.log('로그인 되었습니다'); } }; const student = { passion : true }; (1) __proto__는 [[Prototype]] 의 getter, setter student.__proto__=user; 프..

09_자바스크립트 : 객체 생성자 함수

1. object 생성자 함수 - new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환 - 빈 객체 생성 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성 (1) 빈 객체 생성 const student = new Object(); (2)프로퍼티 추가 student.name = '뿌돌이'; student.age = 16; console.log(student); => { name: '뿌돌이', age: 16 } 2. 생성자 함수 - 생성자 함수를 사용하여 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성할 수 있음. unction Student(name, age){ 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킨다. this.name = name; thi..

08_자바스크립트 : scope ( 스코프체인, const, let, 함수 레벨 스코프)

1. 전역과 지역 스코프 전역 : 코드의 가장 바깥 영역을 - 전역은 전역 스코프를 만듦 - 전역에 변수를 선언하면 어디서든지 참조 가능 지역 : 함수 몸체 내부 - 지역은 지역 스코프를 만듦 - 지역에 변수를 선언하면 자심의 지역 스코프와 하위 지역 스코프에서 참조 가능 ar x = 'global x'; var y = 'global y'; function outer() { var z = "outer's local z"; console.log(x); => global x console.log(y); => global y console.log(z); => outer's local z function inner() { var x = "inner's local x"; console.log(x); => inne..

07_자바스크립트 : 일급 객체

- 무명의 리터럴로 생성 가능 (런타임에 생성) - 변수나 자료구조(객체, 배열 등)에 저장할 수 있음 - 함수의 매개변수에 전달 가능 - 함수의 반환 값으로 사용 가능 1. 무명의 리터럴로 생성, 변수에 저장 var hello = function () { return '안녕하세요!'; }; 2. 객체에 저장 var obj = { hello }; 3. 함수의 매개변수에 전달할 수 있음 function repeat(func, count) { for(var i = 0; i < count; i++) { console.log(func()); } 4. 함수의 반환값으로 사용할 수 있다. return function () { console.log(`${count}번 반복 완료`); } } var returnFunc..

06_자바스크립트 : 함수 (화살표함수, 순수함수, 고차함수, 콜백함수, 재귀함수,...)

함수 정의 1. 함수 선언문 함수 선언문에서는 함수의 이름을 생략할 수 없음 function hello(name) { return `${name}님 안녕하세요!`; } 함수 호출 console.log(hello('홍길동')); => 홍길동님 안녕하세요! 2. 함수 표현식 - 함수 리터럴로 생성한 함수 객체를 변수에 할당할 수 있음. 함수 표현식에서는 함수명을 생략 가능 var hello = function (name) { return `${name}님 안녕하세요!`; } 식별자로 함수를 호출 / 함수명으로 호출은 불가능 console.log(hello('홍길동')); 3. 함수 호이스팅 - 함수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 것 - 변수 할당문의 값은 할당문이 실행되는 시점, 즉 런..

05_자바스크립트 : 리터럴 객체와 속성

1. 객체(object) - 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체 - 0개 이상의 프로퍼티로 구성 된 집합 - 프로퍼티는 키(key)와 값(value)으로 구성 - 프로퍼티 값이 함수일 경우 method라고 부름 객체 생성방법 (1) 객체 리터럴 (2) Object 생성자 함수 (3) 생성자 함수 (4) Object.create 메서드 (5) Class(ES6) 가장 일반적이고 간단한 방법, 중괄호 내 0개 이상의 프로퍼티를 정의 var student = { 키-값 쌍으로 구성 된 프로퍼티 프로퍼티 : 객체의 상태를 나타내는 값(data) name : '유관순', age : 16, 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) ge..

04_자바스크립트 : 연산자 (비교연산자, 논리연산자, ES11 operator)

1 . 비교 연산자 - 좌항과 우항의 비교 연산자를 비교한 다음 그 결과를 불리언 값으로 반환 - if문이나 for문과 같은 제어문의 조건식에서 주로 사용 - 동등 비교 (==, !=) : 암묵적 타입 변환을 통해 타입 일치 시킨 후 같은 값인지 비교 - 일치 비교 (===, !==) : 타입과 값이 모두 일치하는지 비교 - 2. 논리 연산자 단축 평가 : 표현식을 평가하는 도중 평가 결과가 확정 된 경우 나머지 평가 과정을 생략하는 것 OR의 경우 'apple'이 이미 Truthy 값이여서 true로 평가되고 논리 연산의 결과를 결정한 첫 번째 피연산자 apple을 그대로 반환 console.log('apple' || 'banana'); => apple console.log(false || 'banan..

03_자바스크립트 : 변수_명시적 타입 변환

개발자의 의도에 따라 값의 타입을 변환 생성자 함수 : String, Numver, Boolean (1) 문자열 타입으로 변환 String 생성자 함수 console.log(String(10)); toString() 메서드 console.log((10).toString()); 문자열 연결 연산자 console.log(10 + '20'); (2) 숫자 타입으로 변환 Number 생성자 함수 console.log(Number('10')); parseInt, parseFloat 함수 이용 (문자열 -> 숫자만 가능) console.log(parseInt('10')); console.log(parseFloat('10.01')); + 단항 연산자 console.log(+''); * 산술 ..

02_자바스크립트 : 변수_암묵적 타입 변환(implicit-coercion)

1. 동적 타입 언어 (dynamically typed language) - 자바스크립트는 변수 선언 후 사전에 데이터 타입을 지정하지 않음. - 할당에 의해 타입이 결정되어 재할당하게 되면 동적으로 변수의 타입이 변경 됨. var test; console.log(typeof test); => undefined test = 1; console.log(typeof test); => number test = 'JavaScript'; console.log(typeof test); => string . . . 2. 암묵적 타입 변환(implicit-coercion) - 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환 되는 것 2-1. 문자열 타입으로 변환(convert to string) : 문자열 연결 ..

반응형