JavaScript
-
호이스팅(Hoisting), TDZ(Temporal Dead Zone)JavaScript/기본 2 2022. 10. 3. 18:58
변수 let (es6) const (es6) var (es5) : 한 번 선언된 변수를 다시 선언할 수 있다. 변수 선언 및 출력 (var 로 선언) console.log(name); // undefined var name = 'Mike'; // var // 선언하기 전에 사용할 수 있다. // 값이 할당되지 않아 undefined으로 출력되지만 오류는 나지 않는다. // 그 이유는 ? // 호이스팅 (Hoisting)때문이다. 호이스팅 (Hoisting) 스코프 내부 어디서든 변수 선언은 최상위에 선언된 것처럼 동작한다. var name; // 최상위로 끌어올려지는 것처럼 동작(Hoisting) console.log(name); name = 'Mike'; // 할당 // Hoisting // 선언은 호..
-
[표준 객체] - Math 객체JavaScript/기본 1 2022. 2. 10. 16:27
Math 객체 상수와 함수들을 미리 구현해 놓은 자바스크립트 표준 내장 객체 다른 전역 객체와 달리 생성자(constructor)가 존재하지 않는다. 따로 인스턴스를 생성하지 않아도 Math객체의 모든 메소드나 프로퍼티를 바로 사용할 수 있다. 웹 브라우저마다 다른 결과값을 얻을 가능성이 높다. 아주 정확한 결과값이 필요한 작업에는 Math메소드는 사용하지 않는 것이 좋다. Math.min( ) 인수로 전달받은 값 중 가장 작은 수 반환 Math.min(); // Infinity => 인수가 전달되지 않은 경우 Math.min(1, 10, -100, -10, 1000, 0); // -100 Math.min(1, 10, -100, -10, "-1000", 0); // -1000 Math.min(1, 10,..
-
[표준객체] - Number 메소드JavaScript/기본 1 2022. 2. 7. 14:51
Number.parseFloat( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다. 문자열 파싱하여 문자열에 포함된 숫자 부분을 실수 형태로 반환 여러 개의 숫자가 존재하면, 첫 번째 숫자만을 실수형태로 반환 Number.parseFloat("12"); // 12 Number.parseFloat("12.34"); // 12.34 Number.parseFloat("12문자열"); // 12 Number.parseFloat("12 34 56"); // 12 Number.parseFloat("문자열 56"); // NaN Number.parseInt( ) 메소드 - 사파리 / 익스플로러 지원하지 않는다. 문자열 파싱하여 문자열에 포함된 숫자 부분을 정수 형태로 반환 여러 개의 숫자가 존재하면, 첫 번째 숫..
-
[표준객체] - Number 객체JavaScript/기본 1 2022. 2. 7. 00:52
자바스크립트에서 수 표현 // 64비트 부동 소수검 수의 정밀도 var x = 999999999999999; // 15자리 정수부 var y = 9999999999999999; // 16자리 정수부 var z = 0.1 + 0.2; // x: 999999999999999 // y: 10000000000000000 // z: 0.30000000000000004 => 오차 // 정수부는 15자리까지 // 소수부는 17자리까지 유효 // 오차를 없애기 위해 정수의 형태로 먼저 변환하여 계산을 수행하고 // 다시 실수의 형태로 재변환 방법 사용 var z = (0.2 * 10 + 0.1 * 10) / 10; // 0.3 진법 표현 var x = 0xAB; // 16진법으로 표현된 10진수 171 var y = ..
-
[표준객체] - 전역객체와 래퍼객체(wrapper object)JavaScript/기본 1 2022. 2. 6. 22:57
전역 객체 (global object) 자바스크립트에 미리 정의된 객체로 전역 프로퍼티나 전역 함수를 담는 공간의 역할 전역 범위에서 this연산자를 통해 접근 웹 브라우저에 있는 스크립트가 특별히 백그라운드 작업으로 시작하지 않는 코드들은 그것의 전역 객체로써 Window를 가진다. window객체 = 브라우저에서 전역 객체 function greeting() { console.log("Hi!"); } window.greeting(); // Hi! 래퍼 객체 (wrapper object) 숫자, 문자열, 불리언 등 원시 타입의 프로퍼티에 접근하려고 할 때 생성되는 임시 객체를 래퍼 객체라고 한다. var str = "문자열"; // 문자열 생성 var len = str.length; // 문자열 프로퍼..
-
[객체] - 객체 프로퍼티와 메소드JavaScript/기본 1 2022. 2. 5. 17:35
객체 프로퍼티(property) 모든 자바스크립트 객체는 Object객체와 Object.prototype객체의 모든 프로퍼티를 상속받는다. 객체 메소드 (method) hasOwnProperty( ) 특정 프로퍼티가 해당 객체에 존재하는지 검사 직접 선언된 프로퍼티만 검사 같은 이름의 프로퍼티라도 상속받은 프로퍼티는 false반환 function Dog(color, name, age, family) { this.color = color; this.name = name; this.age = age; this.family = family; this.breed = function() { return this.color + " " + this.family; } } var myDog = new Dog("검정색",..
-
[객체] - 객체 다루기 (this)JavaScript/기본 1 2022. 2. 5. 16:35
this 키워드 this가 사용된 자바스크립트 코드 영역을 포함하고 있는 객체 this - 메소드 내부에서 사용된 this 키워드는 해당 메소드를 포함하고 있는 객체 - 객체 내부에서 사용된 this키워드는 객체 그 자신을 가리킹다. - 변수가 아닌 키워드 => 임의로 가리키는 값을 바꿀 수 없다. 객체 프로퍼티의 삭제 // 문법 객체이름.프로퍼티이름 // 또는 객체이름["프로퍼티이름"] delete 객체이름.프로퍼티이름; // 예제 function Dog(color, name, age) { this.color = color; this.name = name; this.age = age; } var myDog = new Dog("흰색", "마루", 1); delete myDog.age; // age프로퍼티..
-
[객체] - 프로토타입JavaScript/기본 1 2022. 2. 5. 14:32
상속 (inheritance) 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것 특징 새로운 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용 가능 클래스 간 종속 관계를 형성하여 객체의 관계를 조직화할 수 있다. 객체 지향 프로그래밍 특징 중 하나 상속 추상화 캡슐화 (정보은닉) 다형성 자바스크립트(prototype-based)에서는 현재 존재하고 있는 객체를 프로토타입으로 사용하며 해당 객체를 복제하여 재사용하는 것을 상속이라 한다. => 프로토타입 기반 언어 프로토타입(prototype) 제품의 원형, 초기 모델.. 등 자바스크립트 => 자신을 만들어낸 객체의 원형 프로토타입 체인 (prototype chain) 객체 이니셜라이저를 사용해 생성된 같은 타입의 객체들은 ..