Number 메소드 Number 메소드는 Number 객체에 정의되어 있는 숫자와 관련된 작업을 할 때 사용하는 메소드이다. 가장 많이 사용되는 대표적인 Number 메소드는 다음과 같다. Number.parseFloat() Number.parseInt() Number.isNaN() Number.isFinite() Number.isInteger() Number.isSafeInterger() Number.parseFloat() 메소드 Number.parseFloat() 메소드는 문자열을 파싱(parsing)하여, 문자열에 포함된 숫자 부분을 실수 형태로 변환한다. 문자열에 여러개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 실수 형태로 반환한다. 이 메소드는 전역 함수인 parseFloat() 함수와 완..
자바스크립트에서의 수 표현 자바스크립트에서는 정수와 실수를 따로 구분하지 않고, 모든 수를 실수 하나로만 표현한다. 자바스크립트에서 모든 숫자는 IEEE 754 국제 표준에서 정의한 64비트 부동 소수점 수로 저장된다. 64비트 부동 소수점 수(double precision floating point numbers)는 메모리에 다음과 같은 형태로 저장된다. 0 ~ 51 비트 52 ~ 62 비트 63 비트 총 52 비트의 가수 부분 총 11 비트의 지수 부분 총 1 비트의 부호 부분 이러한 64비트 부동 소수점 수의 정밀도는 정수부는 15자리까지, 소수부는 17자리까지만 유효하다. 다음 예제는 64비트 부동 소수점 수의 정밀도를 알아보는 예제이다. 🔔 예제) var x = 999999999999999; /..
전역 객체(global object) 전역 객체란 자바스크립트에 미리 정의된 객체로 전역 프로퍼티나 전역 함수를 담는 공간의 역할을 한다. 전역 객체 그 자체는 전역 범위(global scope)에서 this 연산자를 통해 접근할 수 있다. 자바스크립트에서 모든 객체는 전역 객체의 프로퍼티가 된다. 웹 브라우저가 새로운 페이지를 로드(load) 하면, 자바스크립트는 새로운 전역 개체를 만들고 해당 프로퍼티들을 초기화 한다. 래퍼 객체(wrapper object) 🔔 예제) var str = "문자열"; // 문자열 생성 var len = str.length;// 문자열 프로퍼티인 length 사용 위의 예제에서 생성한 문자열 리터럴 str은 객체가 아닌데도 length 프로퍼티를 사용할 수 있다. 프로그..
상속(inheritance) 상속(inheritance)이란 새로운 클래스에서 기존 클래스의 모든 프로퍼티와 메소드를 사용할 수 있는 것을 의미한다. 상속을 통해 새로운 프로그램의 요구에 맞게 기존 클래스를 수정하여 재사용할 수 있다. 또한, 클래스 간의 종속 관계를 형성함으로써 객체의 관계를 조직화할 수 있는 장점이 있다. 따라서 이러한 상속은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나가 된다. 하지만 C#이나 C++과 같은 클래스 기반(class-based)의 객체 지향 언어와는 달리 자바스크립트는 프로토타입 기반(prototype-based)의 객체지향 언어이다. 프로토타입 기반이기 때문에 상속의 개념이 클래스 기반의 객체 지향 언어와는 약간 다르다. 자바스크립트..
목차 자바스크립트 객체 자바스크립트의 기본 타입(data type)은 객체(object)이다. 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다. 프로퍼티의 값으로 함수가 올 수도 있는데, 이러한 프로퍼티를 메소드(method)라고 한다. 🔔 예제) var cat = "나비"; // 일반적인 변수의 선언 // 객체도 많은 값을 가지는 변수의 하나임 var kitty = { name: "나비", family: "코리안 숏 헤어", age: 1, weight: 0.1 }; cat // 나비 kitty.name // 나비 자바스크립트에서는 숫자, 문자열, 불리언, undefined 타입을 제외한 모든 것이 객체이다. 하지만 숫자, 문자열 불리언과 같은 원시..
함수의 정의 자바스크립트에서 함수의 정의는 function 키워드로 시작되며, 다음과 같은 구성요소를 가진다. 함수의 이름 괄호 안에 쉼표(,)로 구분되는 함수의 매개변수(parameter) 중괄호({})로 둘러싸인 자바스크립트 실행문 자바스크립트에서 함수를 정의하는 문법은 다음과 같다. 문법 function 함수 이름(매개변수1, 매개변수2, ...) { 함수가 호출되었을 때 실행하고자 하는 실행문; } 함수 이름(function name)은 함수를 구분하는 식별자(identifier)이다. 매개변수(parameter)란 함수를 호출할 때 인수(argument)로 전달된 값을 함수 내부에서 사용할 수 있게 해주는 변수이다. 💡 Tip ? 함수의 인수(argument)란 함수가 호출될 때 함수로 값을 전..
배열(array)이란? 자바스크립트에서 배열(array)은 이름과 인덱스로 참조되는 정렬된 값의 집합으로 정의된다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 한다. 자바스크립트에서 배열의 특징은 다음과 같다. 배열 요소의 타입이 고정되어 있지 않으므로, 같은 배열에 있는 배열 요소끼리의 타입이 서로 다를 수도 있다. 배열 요소의 인덱스가 연속적이지 않아도 되며, 따라서 특정 배열 요소가 비어 있을 수도 있다. 자바스크립트에서 배열은 Array 객체로 다루어진다. 배열의 생성 자바스크립트에서 배열을 만드는 방법은 다음과 같다. 문법 1. var arry = [배열요소1, 배열요소2, ...]; // 배열 리터럴을 이용하는 방..
for/in 문 for / in 문은 일반적인 for 문과는 전혀 다른 형태의 반복문이다. for / in 문은 해당 객체의 모든 열거할 수 있는 프로퍼티(enumerable properties)를 순회할 수 있도록 해준다. 💡 열거할 수 있는 프로퍼티란 내부적으로 enumerable 플래그가 true로 설정된 프로퍼티를 의미한다. 이러한 프로퍼티들은 for/in 문으로 접근할 수 있게 된다. 이 반복문은 루프마다 객체의 열거할 수 있는 프로퍼티의 이름을 지정된 변수에 대입한다. 이렇게 대입받은 변수를 이용하면 루프 안에서 객체의 열거할 수 있는 프로퍼티에 순차적으로 접근할 수 있다. for / in 문의 문법은 다음과 같다. 문법 for (변수 in 객체) { 객체의 모든 열거할 수 있는 프로퍼티의 개..