Javascript

Javascript

Obejct 메서드

Object.keys - 객체의 key만 담은 배열을 반환함 const obj = { name:"김용식", age:29 } //['name','age'] Object.keys(obj) - 객체의 프로퍼티 갯수를 반환하는 함수 만들기 let obj ={ apple : 2000, banana : 2000, peach : 4000, kiwi : 1500 } function count(obj) { //Object.key(obj) ['apple', 'banana' , 'peach' , 'kiwi'] return Object.keys(obj).length; } console.log(obj) // 4 Object.values - 객체의 값만 담은 배열을 반환함 const obj = { name:"김용식", age:2..

Javascript

옵셔널 체이닝

옵셔널 체이닝 정의되지 않은 객체의 프로퍼티(속성)에 접근할 떄 에러를 반환하지 않고 undefined를 할당하여 프로그램이 종료 되지 않고 남은 로직을 처리 할 수 있도록 하는 문법 기본 문법 아무런 프로퍼티도 정의되지 않은 빈 객체 선언 person 객체에 선언되지 않은 name.firstName프로퍼티 호출 시 에러 발생 //아무 프로퍼티도 정의 되지 않은 빈 객체 선언 const person = {} //person 객체에 선언되지 않은 name.firstName 프로퍼티에 접근시 에러발생 console.log( person.name.firstName) //?.옵셔널 체이닝 문법으로 왼쪽에 있는 객체를 평가함 console.log(person?.name?.firstName) 옵셔널 체이닝 문법 ?..

Javascript

[모자딥]Class

예제 25.05 클래스는 함수로 평가됨 프로토타입과 생성자 함수는 단독으로 존재할 수없고 언제나 쌍으로 전재함 class Person { } console.log(typeof Person); // function 예제 25.06 클래스는 클래스 정의 이전에 참조할 수 없음 console.log(Person); // ReferenceError: Cannot access 'Person' before initialization // 클래스 선언문 class Person { } 예제 25.07 클래스 선언문도 변수 선언, 함수정의와 같이 호이스팅 발생 클래스는 let,const키워드로 선언한 변수처럼 호이스팅됨 => TDZ에 접근했을때 RangeError 발생 const Person = ''; { // 호이스팅..

Javascript

[모자딥]Class

예제 25.01 Person 변수를 선언하고 즉시실행되는 IIFE함수 실행 생성자와 프로토타입 메서드를 캡슐화함 // ES5 생성자 함수 // Person변수 선언, 즉시 실행되는 함수인 IIFE, 함수는 생성자와 프로토타입 메서드를 캡슐화 var Person = (function () { // 생성자 함수 Person, name이라는 매개변수를 받아 새로 생성된 객체의 name 속성에 할당함 function Person(name, age) { this.name = name; this.age = age } // 프로토타입 메서드 // Person 생성자의 프로토타입 sayHi라는 메서드 추가 // 이 메서드는 콘솔에 메세지를 로깅하는데, 메세지 안에 name 속성이 포함됨 Person.prototype...

Javascript

[모자딥]Math

예제 29.01 Math는 생성자 함수가 아님 new 키워드로 객체를 생성하지 않고 정적프로퍼티와 정적메서드만 제공함 Math.PI는 원주율 PI값을 반환하는 메서드 Math.PI; // -> 3.141592653589793 console.log(Math.PI) 예제 29.02 Math.abs 메서드는 인자로 전달된 숫자의 절대값을 반환함 0또는 양수 인자로 전달된 값은 암묵적 타입 변환이 일어남 string -> number Math.abs(-1); // -> 1 Math.abs('-1'); // -> 1 Math.abs(''); // -> 0 Math.abs([]); // -> 0 Math.abs(null); // -> 0 Math.abs(undefined); // -> NaN Math.abs({})..

Javascript

[모자딥]Number

예제 28.14 Number.isFinite메서드는 첫번째인자로 들어온 변수가 유한수인지 아닌지 판단함 유한수 일때는 true 아닐때는 false를 반환함 Number.isFinite(0); // -> true Number.isFinite(Number.MAX_VALUE); // -> true Number.isFinite(Number.MIN_VALUE); // -> true // 인수가 무한수이면 false를 반환한다. Number.isFinite(Infinity); // -> false Number.isFinite(-Infinity); // -> false const Finite = (In) => { return Number.isFinite(In); }; console.log(Finite(Infinity..

Javascript

[모자딥]Number

예제 28.01 const numObj = new Number(); console.log(numObj); // Number {[[PrimitiveValue]]: 0} 예제 28.02 const numObj = new Number(10); console.log(numObj); // Number {[[PrimitiveValue]]: 10} 예제 28.03 Number 생성자 함수의 인자로 숫자가 아닌 값을 전달하면 인자를 숫자형으로 강제 변환한다 [[NumberData]] 내부 슬롯에 변환된 숫자를 할당한 Number 래퍼 객체를 생성한다. 인자를 숫자로 변환할 수 없다면 NaN을 할당 //문자열 '10'을 인자로 전달하면 숫자 10으로 할당함 let numObj = new Number('10'); cons..

Javascript

[모자딥]프로퍼티 어트리뷰트 객체 변경 방지

예제 16.09 const person = {}; Object.defineProperties(person, { // 데이터 프로퍼티 정의 firstName: { value: 'Ungmo', writable: true, enumerable: true, configurable: true }, lastName: { value: 'Lee', writable: true, enumerable: true, configurable: true }, // 접근자 프로퍼티 정의 fullName: { // getter 함수 get() { return `${this.firstName} ${this.lastName}`; }, // setter 함수 set(name) { //console.log("🚀 ~ file: 16.09.js..

index.ys
'Javascript' 카테고리의 글 목록