toFixed()
const l = 123.45678
console.log(l) //123.45678
let a = l.toFixed(3)
console.log(a) //123.457 (반올림)
console.log(l) //123.45678 (원시타입-원본은 안바뀜)
console.log(l.toFixed(2)) //123.46
Number.isNaN()
- 숫자가 될 수 있는가?console.log(Number.isNaN('1')) //false
console.log(Number.isNaN('a')) //false
console.log(Number.isNaN(1)) //false
console.log(Number.isNaN(Number('1'))) //false
console.log(Number.isNaN(Number('a'))) //true
const m = Number('a')
console.log(m===NaN) //NaN은 비교 연산자로 비교 불가능
Number.isFinite()
- 유한한 숫자인가 ?console.log(10/0) //Infinity
console.log(-10/0) //-Infinity
console.log(Number.isFinite(10/0)) //false
console.log(Number.isFinite(-10/0)) //false
console.log(Number.isFinite(1)) //true
console.log(Number.isFinite(10)) //true
const n = 10/0
console.log(n===Infinity) // true -> Infinity는 비교연선자로 비교 가능
trim()
- 문자열 양 끝 공백 없애기split()
- 문자열 특정 기호로 자르기indexOf()
- 문자열의 특정 인덱스 (앞에서부터)length
- 속성. 문자열의 길이문자열로 데이터를 주고 받는 방식에는 CSV, XML, CSON 등 다양한 자료 표현 방식이 있음
현재 가장 많이 사용되는 자료 표현 방식이 JSON 표현 방식임
- JSON 형식의 규칙
- 값을 표현할 때는 문자열, 숫자, 불 자료형만 사용할 수 있음 (함수 등 사용 불가)
- 문자열은 반드시 큰따옴포로 만들어야함
- 키에도 반드시 따옴표를 붙여야 함
대부분의 프로그래밍 언어는 JSON 형식의 문자열을 읽어들이는 기능이 있음
그래서 네트워크를 통해서 각각의 프로그래밍 언어로 만든 애플리케이션들이 데이터를 교환할 때 JSON 형식을 활용함
JSON 객체의 메소드는 stringfy()
와 parse()
2가지 밖에 없음
JSON.stringfy()
- 자바스크립트 객체를 JSON으로 변환하는 메소드const data = [{name:"kim",age:"22"},{name:"su",age:"28"}]
console.log(JSON.stringify(data))
//[{"name":"kim","age":"22"},{"name":"su","age":"28"}]
JSON.parse()
- JSON문자열을 자바스크립트 객체로 전개할 때 사용하는 메소드const obj = [{name:"kim",age:"22"},{name:"su",age:"28"}]
const jsonString = JSON.stringify(obj) //object to json
console.log(jsonString)
//[{"name":"kim","age":"22"},{"name":"su","age":"28"}]
console.log(JSON.parse(jsonString)) //json to object
//[ { name: 'kim', age: '22' }, { name: 'su', age: '28' } ]
수학과 관련된 기본적인 연산을 할 때 사용할 수 있는 객체
Math.PI
: 3.1415926 …Math.E
: 2.7182817 …Math.random()
: 랜덤 숫자 만들기 (0이상 1미만)const num = Math.random()
console.log("0-1 사이 랜덤 숫자",num) // 0.10076737500665445
console.log("0-50 사이 랜덤 숫자",num*50) //5.038368750332722
console.log("0-100 사이 랜덤 숫자",num*100) //10.076737500665445
Math.sqrt()
:제곱const sqrt = Math.sqrt(4)
console.log(sqrt) //2
Math.floor()
: 버림Math.ceil()
: 올림Math.round()
: 반올림const mathNum = 34.76
console.log(Math.floor(mathNum))//34
console.log(Math.ceil(mathNum))//35
console.log(Math.round(mathNum))//35
Math.pow(밑,지수)
Math.pow(2,4) // 16
//index.html
<head>
<script src="main.js"></script> //
</head>
외부라이브러리 : 다른 사람들이 만든 다양한 함수와 클래스를 묶어서 제공해부는 것
유틸리티 라이브러리 : 개발할 때 보조적으로 사용하는 함수들을 제공해주는 라이브러리
underscore, lodash 등 다양한 라이브러리 존재.
lodash - 최근 많이 사용
- 설치 방법 - lodash 홈페이지
<head>
<!-- //파일 다운 -->
<script src="./lodash.min.js"></script>
<!-- //cdn 방식 -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
</head>
/**
* @license
* Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
*/
;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u<i;){var o=n[u];t(e,o,r(o),n)}return e}function r(n,t){for(var r=-1,e=null==n?0:n.length;++r<e&&false!==t(n[r],r,n););return n}function e(n,t){for(var r=null==n?0:n.length;r--&&false!==t(n[r],r,n););return n}function u(n,t){for(var r=-1,e=null==n?0:n.length;++r<e;)if(!t(n[r],r,n))return false;
기본적으로 lodash는 식별자를 이용함. (jQuery의 $와 같이)
javascript 는 와 $를 식별자로 사용할 수 있음
sortBy()
- 정렬
const books = [
{ name: "a", price: 12000 },
{ name: "b", price: 10000 },
];
const sort = _.sortBy(books, (book) => book.price);
console.log("sort",sort);
// 0: {name: 'b', price: 10000} 1: {name: 'a', price: 12000}
console.log("books",books)
//0:{name: 'a', price: 12000} 1:{name: 'b', price: 10000}
//원본은 건들지 않음
라이브러리를 많이 살펴볼 수록 자바스크립트로 할 수 있는 폭이 넓어짐
또한 라이브러리 코드를 읽어보면 잘 만드는 사람들이 어떤 식으로 작성하는지 알 수 있음
구글에서 popular javascript library 2021 등 키워드로 검색 추천