본문 바로가기

JS57

JS, BigInt BigInt Number의 원시 값이 안정적으로 나타낼수 있는 최대치인 2^53 -1보다 큰 정수를 표현할 수 있는 내장 객체 BigInt는 정수 리터럴의 뒤에 n을 붙이거나 함수 BigInt()를 호출해 생성할 수 있음 const ExBigInt = 9007199254740991n; const ExBigInt2 = BigInt(9007199254740991); BigInt는 Number과는 다르게 Math 객체의 메서드와 함께 사용할 수 없음 또한 연산에서 Number과 혼합해 사용할 수 없음 또한 연산의 결과는 언제나 소수점 이하를 버려 정수가 아닌 결과는 나오지 않음 자료형 BigInt의 typeof 판별 결과는 'bigint'임 typeof 1n === "bigint"; // true typeof.. 2023. 10. 19.
JS, 모든 문자열 치환(replace, replaceAll) replace() 문자열에서 변경하려는 문자열이 여러번 반복될 경우 첫번째로 발견한 문자열을 치환 첫번째 문자열이 아닌 변경하려는 문자열을 전부 변경하려면 글로벌(g)를 이용한 정규식을 통해 바꾸어야 함 let str = 'have, a, nice, day!' str.replace(/,/g, ' ')//have a nice day! replaceAll() ES2021버전에 추가된 메소드 문자열에서 특정 문자를 지정한 문자열로 치환 replace()는 정규식을 통해 전체 문자열을 바꾸어야 했으니 replaceAll()을 이용하면 문자열을 직접 지정해서 바꿀 수 있음 정규식을 사용할때는 g로 글로벌로 해주지 않으면 오류가남 let str = 'have, a, nice, day!' str.replaceAll(.. 2023. 10. 17.
JS, 배열 비교 숫자나 문자열을 비교할때는 == 이나 === 연산자를 사용하면 되지만 배열이나 객체를 비교할때는 사용이 불가능함 배열이나 객체는 reference 타입으로 값이 비교되는 것이 아닌 주소값이 비교되기 때문에 false가 뜸 1. JSON.stringify 간단한 비교 JSON.stringify를 통해 문자열로 변경해준 뒤 배열을 비교함 const arr1 = [1,2,3,4,5] const arr2 = [1,2,3,4,5] return JSON.stringify(arr1) === JSON.stringify(arr2)//true 2. every 사용 .every()는 배열의 모든 원소가 조건에 맞는지 검사하는 메소드 모든 원소가 조건을 만족하면 true, 하나라도 만족하지 않으면 false를 반환 원소가 없.. 2023. 10. 12.
JS, 내장함수를 이용한 숫자/날짜의 현지화 [ toLocaleString ] 사용하는 타입에 따라 지정된 지역에 표현방식으로 값을 변환하여 리턴함 ▶ 사용할 수 있는 객체 Number Date Array Object ▶ Number.toLocaleString() 지정된 지역에서 사용하는 숫자의 표현 방식으로 문자열로 리턴함 여기서 확인할점은 3자리수마다 ','를 넣어준다는 점 이 내장함수를 사용하면 숫자 ,를 넣기가 편해짐 NumberObject.toLocaleString([locales [, options]]) const num = 123456.789 num.toLocaleString();// 123,456.789 num.toLocaleString('ko-kR');// 123,456.789 num.toLocaleString('ar-EG');//.. 2023. 7. 8.
JS, 배열의 조건 만족 [ 배열의 조건 만족 ] ▶ every( ) arr.every(callback(curentValue, index, array)[, thisArg]) callback : function 안에서 조건을 체크하며, true/false를 반환 curentValue: 현재 요소 (ex. 반복문의 현재 요소) index : 현재 요소의 인덱스 array :대상 배열 thisArg : callback을 실행할 때 this로 사용하는 값 .every()는 배열의 모든 원소가 조건에 맞는지 검사하는 메소드 모든 원소가 조건을 만족하면 true, 하나라도 만족하지 않으면 false를 반환함 원소가 없는 빈 배열은 조건을 만족하지 않는 원소가 없으므로 true를 반환함 기존의 배열 값은 변경되지 않음 ▶ some( ) ar.. 2023. 7. 4.
JS, 정규표현식(RegExp) [ 정규표현식(regular expression) ] 정규 표현식이란 일정한 ‘패턴’을 가진 ‘문자열’의 ‘집합’을 표현하기 위해 사용하는 ‘형식 언어(formal language)’ 정규 표현식은 JS의 고유 문법이 아니며, 대부분의 프로그램 언어와 코드 에디터에 내장되어 있음 JS는정규 표현식 문법 을ES3부터 도입하였음 ▶ 정규 표현식의 역할과 단점 정규 표현식은 문자열을 대상으로 패턴 매칭 기능(검색, 추출, 치환)을 제공 문자 검색부터 유효성 검사등의 복잡한 문자 일치 기능 등을 정규 표현식 패턴으로 빠르게 수행할 수 있음 다만 정규 표현식은 주석이나 공백을 허용하지 않고 여러 기호를 혼합해 사용하기에 가독성이 좋지 않음 ▶ 정규표현식 생성 1. 리터럴 방식 정규표현식은 /로 감싸진 패턴을 리터.. 2023. 6. 21.
JS, padEnd()와 padStart() padStart() padStart(목표길이, 채울 값) 목표길이: 현재 문자열의 길이보다 작다면 채워넣지 않고 그대로 반환 현재 문자열에 채워넣을 다른 문자열. 문자열이 너무 길어 목표 문자열 길이를 초과하면 좌측 일부를 잘라넣음 'abc'.padStart(10); // " abc" 'abc'.padStart(10, "foo"); // "foofoofabc" 'abc'.padStart(6,"123465"); // "123abc" 'abc'.padStart(8, "0"); // "00000abc" 'abc'.padStart(1); // "abc" padEnd() padEnd(목표길이, 채울 값) 목표길이: 현재 문자열의 길이보다 작다면 채워넣지 않고 그대로 반환 현재 문자열에 채워넣을 다른 문자열. 문자.. 2023. 6. 21.
JS, 진수 변환방법 [ 진수 변환방법] 10진수에서 n진수로 변환 toString()은 특정 객체를 문자열로 반환해 줌 또한 원하는 10진수를 특정 진수로 변환하고 싶을때도 사용함 숫자.toString(진수) 예시 let num = 3; num.toString(2)// 11 // 10진수인 3을 2진수로 변경 n진수를 10진수로 변환 parseInt()는 문자열을 특정 진수를 10진수로 변환함 parseInt(문자열, 진수) 예시 let num = "11" parseInt(num, 2);// 3 // 2진수로 되어있던 "11"를 10진수로 변경 2023. 6. 19.
JS, concat( ) [ concat( ) ] 파라미터로 전달되는 값들을 기존 배열에 합쳐서 새로운 배열을 반환하는 메서드 기존 배열에 아무런 영향도 미치지 않음 파라미터로 전달되는 인자 값이 배열일 경우에는 해당 배열이 펼쳐지면서 기존 배열에 합쳐짐 ▶ 사용방법 concat 메서드는 배열에 사용되고, 파라미터로 어떤 값이든 전달할 수 있음 // 문자열 문자열.concat(문자열) //배열 배열.concat(배열) ▶ 예시 const arr = [1,2,3]; const arr2 = [4,5,6]; const arr3 = [9] arr.concat(7,8) // [1,2,3,7,8] arr.concat(arr2) // [1,2,3,4,5,6] arr.concat(arr2,a arr3)// [1,2,3,4,5,6,9] conc.. 2023. 6. 17.