Number
- 생성자 함수가 없는 객체는 Static 함수.
- new Number(value)
- value에 문자열이 들어갔을때, 최대한 형변환된다.(숫자가 아니면 NaN 반환)
- 래퍼 객체를 통해 형변환하는 것은 좋은 것이 아니다.
Number Property
Number.MAX-VALUE
Number.MIN-VALUE
- 0에 가장 가까운 양수값
Number.POSITIVE_INFINITY
- INFINITY 양의무한대를 가지는 상수
Number.NEGATIVE_INFINITY
Number.NaN
Number method
- 기본적으로 형변환을 안한다.(엄격함)
- prototype.메서드를 쓰지 않음. static 함수이다.
Number.isFinite()
- 숫자이고 유한한 값
- 전역함수의 isNaN()과의 차이 : 형변환을 안함(엄격함)
Number.isInteger()
- Number.isInteger(0 / 0) // NaN(Not a Number) -> false
Number.isNaN()
- 이것도 전역함수의 isNaN()과 다르게 형변환을 안함(엄격함)
Number.isSafeInteger()
- 자바스크립트에서 사용할 수 있는 정수인지를 검사하여 boolean을 반환
- Number.isSafeInteger(10000000000000001) // false
Number.prototype.toExponential()
Number.prototype.toFixed()
- 매개변수(인자)로 받은 소수점자리수만큼 반올림하고 문자열로 반환.
- 소수점자리수가 넘칠때는 0을 넣어준다.
Number.prototype.toPrecision()
Number.prototype.toString()
- toString(‘정수로 진법을 나타낼수있음’)
Number.prototype.valueOf()
- Number 객체의 값(기본자료형)을 반환한다.
Math
- 정적 메소드
Math Property
Math.PI
Math Method
- Math.max()]0var max = Math.max.apply(null, arr); // 3
- Math.in()]0var max = Math.max.apply(null, arr); // 3
정규 표현식
RegExp 생성자 함수를 이용해서 정규표현식 객체가 생성된다. (var regex=~)
배열
- 1개의 변수에 여러 개의 값을 순차적으로 저장할 때 사용한다.
- 배열은 프로퍼티 이름이 필요없고 값만 나열하면 된다.(객체와 비교)
- 배열 생성방식 두가지. 배열리터럴, 배열 생성자함수
- 배열 리터럴을 사용- var arr = []; (내부적으로는 array생성자 함수를 사용해서 객체가 생성된다.)
array에서 length : 요소의갯수(index+1개)
순차적인 요소로 구성할 수 있는데
요소는 undefined 이외 모든 값이 들어올 수 있다.
Array생성자 함수
인자값을 매개변수 갯수 또는 요소로 받는다.
Array생성자함수는 코딩할때 사용하지 않을것.
for-in문
-for문을 사용하도록 한다.(속도차이)
Array 프로퍼티
Array.length
- 배열의 길이
Array Method
Array.prototype.concat(item…)
- concat 할때 배열이 아니라 요소로 추가한다.
Array.prototype.pop()
- pop : 대상 요소를 꺼낸다.
- push: 새로운 요소를 뒤에 추가.
- unshift : 새로운 요소를 앞에 추가.
- pop과 push는 원본 배열을 변경한다.
- 빼낸 요소가 return 된다.
- 한두번 추가할땐 arr.push(6);(가독성높음, 퍼포먼스가 떨어짐)
- 여러번 추가할땐 arr[arr.length]=6; 사용. 속도면에서 차이가 있음.
- arr.unshift(0); [0].concat(arr); 도 마찬가지로 속도차이가 있음.
- *웹어플리케이션에서는 사용자가 화면 전환 시간을 오래 기다리지 않는다.
Array.prototype.reverse()
- 원본 배열이 변경
Array.prototype.slice(start, end)
- var res5 = items.slice(); slice() 복사본생성*
Array.prototype.splice
- delete 비교
- 요소를 제거한 후, 새로운 요소를 추가
- Array.prototype.splice.apply
- ES6 Spread연산자?
[참고] this window -> 메소드 내부,생성자함수 제외
중요한 메소드들
Array.prototype.forEach()
- 대상 배열을 알아서 순회한다. 내부에서 for문을 돌린다.
- 각각의 배열안의 요소에 대해서 콜백 함수를 실행시켜 준다.
- 매개변수는 필요하면 적어준다.
- (item, index, array) -> 원본배열의 요소(인자값이 알아서 순서대로 들어온다), index, 원본배열(자신)
- for문을 간편화하기 위해 만들어짐
- break문을 사용할 수 없다.
- 콜백함수의 this는 window, var that = this; 를 이용해서 this 참조 변경 / 또는 두번째 인자값에 this 전달
Array.prototype.map()
- 원본 배열과 매핑되는 새로운 배열을 만들어서 반환한다.
- return 하지 않으면 새로운 배열에 반영되지 않는다. return 필수.