전체 글 195

[모던 자바스크립트 deep dive] 21장 빌트인 객체

자바스크립트 객체의 분류 표준 빌트인 객체 ECMAScript 사양에 정의된 객체 언제나 사용 가능 표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공 => 별도의 선언 없이 전역 변수처럼 언제나 참조 가능 호스트 객체 ECMAScript 사양에는 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가로 제공되는 객체 사용자 정의 객체 표준 빌트인 객체와 호스트 객체처럼 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체 표준 빌트인 객체 Math, Reflect, JSON을 제외한 표준 빌트인 객체는 모두 인스턴스 생성 가능한 생성자 함수 객체 생성자 함수 객체인 표준 빌트인 객체는 프로토 타입 메서드와 정적 메서드를 제공하고 생성자 함수 객체가 아닌 표준 빌트인 객체는 정적 메서드만 제공 // Stri..

[모던 자바스크립트 deep dive] 20장 strict mode

strict mode function foo() { x = 10; } foo(); console.log(x); // 10 \전역 스코프에도 x 변수의 선언이 존재하지 않기 때문에 ReferenceError를 발생할 것같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성한다. 이때 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용 가능 위의 현상을 암묵적 전역이라고 한다. 잠재적인 오류를 발생시키기 어려운 개발 환경을 만들고 그 환경에서 개발하는 것이 해결책 이를 지원하기 위해 ES5부터 strict mode(엄격 모드)가 추가되었다. strict mode는 자바스크립트 언어의 문법을 더 엄격히 적용하여 오류 발생 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 ..

[모던 자바스크립트 deep dive] 19장 프로토타입

자바스크립트는 명령형, 함수형, 프로토타입 기밥 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어 객체지향 프로그래밍 객체지향 프로그래밍은 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나 여러 개의 독립적 단위, 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 "이름"과 "주소"라는 속성을 가진 person 객체를 만들면 어떻게 해야할까? // 이름과 주소 속성을 갖는 객체 const person = { name: "Lee", address: "Seoul", }; console.log(person); //{ name: 'Lee', address: 'Seoul' } 객체는 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료..

카테고리 없음 2024.01.22

[JS 메모] function과 Function의 차이

function은 자바스크립트에서 함수를 정의하는 키워드함수는 코드 블록을 정의하고, 필요한 경우 매개변수를 받아서 실행 가능function 키워드를 사용하여 함수를 선언하고, 함수의 이름과 필요한 매개변수를 지정가능 Function은 자바스크립트에서 내장된 함수 객체Function 객체는 function 키워드로 정의한 함수와 거의 동일한 기능을 제공하지만, 다른 방식으로 사용.Function 객체는 new 키워드를 사용하여 생성되며, 함수의 내용을 문자열로 전달하여 동적으로 함수를 생성가능 function은 함수를 정의하는 키워드이고, Function은 내장된 함수 객체function은 정적인 방식으로 함수를 정의하고, Function은 동적인 방식으로 함수를 생성 대부분의 경우에는 function ..

[모던 자바스크립트 deep dive] 17장 생성자 함수에 의한 객체 생성

Object 생성자 함수 new연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체 완성 // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = "Lee"; person.sayHello = function () { console.log("Hi! My name is " + this.name); }; console.log(person); // {name:"Lee", sayHello:f} person.sayHello(); //Hi! My name is Lee 생성자 함수 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수 인스턴스 생성자 함수에 의해 생성된..

카테고리 없음 2024.01.15

[프로그래머스] 숫자 비교하기 | JS

문제 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. 해결 과정 이 문제는 앞에 했던 문제에 비해 시간이 걸렸다. 3분정도 더? 함수안에 if문을 이용해서 문제를 풀었다. 새롭게 알게 된 점 📝 다른 사람의 풀이를 들어가보니 삼항 조건 연산자로 풀 수 있었다..! if문 밖에 안떠올랐던 나는 다시 한번 더 삼항 조건 연산자로 풀어보려고 한다. 정답 function solution(num1, num2) { if(num1 == num2) { return 1 } else { return -1 } } https://school.programmers.co.kr/learn/courses/30/lessons/120807

[코딩테스트] 두 수의 나눗셈 | JS

문제 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도 록 soltuion 함수를 완성해주세요. 해결 과정 num1을 num2로 나눈다. num1/num2로 한뒤 answer 변수에 적었다. 그 뒤 1000을 곱했다. 그리고 정수 부분을 return한다고 했으니까 return에서 소숫점 버리기 Math.floor()를 이용해 문제를 해결했다. 새롭게 알게된 점📝 다른 사람의 풀이를 보다가 Math.trunc로 푼것을 봤다. Math.trunc는 소수점을 버리기이다. 내가 사용했던 Math.floor()은 소수점을 내리는 것이었다. 정답 function solution(num1, num2) { var answer = (nu..

[프로그래머스] 몫 구하기 | JS

문제 정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요. 문제 해결 function solution(num1, num2) { var answer = (num1/num2); return answer; } 위의 코드처럼 작성하니까 테스트 결과에서 2개 중 1개 성공이라고 나왔다. 왜 일까? 몫을 구하려면 "/" 통해서 하는 건데... 아! 소숫점 때문이구나라는 생각이 들었다. 소숫점 때문에 통과가 안된거라면 소숫점을 버리면 된다. 소숫점을 버릴때는 Math.floor()를 사용한다. return에 Math.floor(answer)을 작성해서 고민을 해결했다. 정답 function solution(num1, num2) { ..

[프로그래머스] 두 수의 곱 | JS

문제 정수 num1, num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요. 정답 function solution(num1, num2) { var answer = num1 * num2; return answer; } https://school.programmers.co.kr/learn/courses/30/lessons/120804 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr

728x90