Math 오브젝트
/*
sinh() : 쌍곡 사인
asinh() : 쌍곡 아크사인
cosh() : 쌍곡 코사인
acosh() : 쌍곡 아크코사인
tanh() : 쌍곡 탄젠트
atanh() : 쌍곡 아크탄젠트
log1p() : log(1+파라미터 값)
log10() : 10을 밑으로 한 로그 값
log2() : 2을 밑으로 한 로그값
expm1() : 자연로그 상수(e)의 x승 -1
hypot() : 제곱근
cbrt() : 세제곱근
sign() : 사인값
trunc() : 소수를 제외한 정수
imul() : 파라미터 값을 곱하고 결과를 32비트로 변환
clz32() : 32비트 값에서 0비트 수
fround() : 32비트 유동 소수 값
*/
// 예시
console.log(Math.sinh(0)); // 0
console.log(Math.tanh(Infinity)); // 1
console.log(Math.atanh(-1)); // -Infinity
console.log(Math.log10(100)); // 2
/*
파라미터 값이 -1보다 작으면 NaN반환 -1이면 음수무한대 반환
*/
console.log(Math.log1p(1)); // 0.6931471805599453
console.log(Math.log1p(-1)); // -Infinity
console.log(Math.log1p(-2)); // NaN
console.log(Math.hypot(3,4,5)); // 7.0710678118654755
console.log(Math.sign(NaN)); // NaN
console.log(Math.trunc(12.345)); // 0.345 버리고 12를 반환
console.log(Math.trunc(-1.234)); // -1
console.log(Math.imul(2,4)); // 8
/*
자바스크립트는 64비트 연산인데 32비트 값을 구한느 것ㅇ느 C++의 32비트와 호환성을 위해서이다.
이는 Emscripten 프로젝트를 위해서이다.
Emscripten 은 source-to-source 컴파일러 LLVM 컴파일러를 사용하여 자바스크립트 코드를 생성하는 프로젝트이다.
*/
console.log(Math.clz32(1)); // 31 -> 1을 32비트로 변환하면 왼쪽의 31개 비트에 0이설정되고 가장 오른쪽비트에 1이 설정
let value = 0.1+0.3;
console.log(value); // 4
console.log(Math.fround(value)); // 0.4000000059604645
String 오브젝트
/*
sinh() : 쌍곡 사인
asinh() : 쌍곡 아크사인
cosh() : 쌍곡 코사인
acosh() : 쌍곡 아크코사인
tanh() : 쌍곡 탄젠트
atanh() : 쌍곡 아크탄젠트
log1p() : log(1+파라미터 값)
log10() : 10을 밑으로 한 로그 값
log2() : 2을 밑으로 한 로그값
expm1() : 자연로그 상수(e)의 x승 -1
hypot() : 제곱근
cbrt() : 세제곱근
sign() : 사인값
trunc() : 소수를 제외한 정수
imul() : 파라미터 값을 곱하고 결과를 32비트로 변환
clz32() : 32비트 값에서 0비트 수
fround() : 32비트 유동 소수 값
*/
// 예시
console.log(Math.sinh(0)); // 0
console.log(Math.tanh(Infinity)); // 1
console.log(Math.atanh(-1)); // -Infinity
console.log(Math.log10(100)); // 2
/*
파라미터 값이 -1보다 작으면 NaN반환 -1이면 음수무한대 반환
*/
console.log(Math.log1p(1)); // 0.6931471805599453
console.log(Math.log1p(-1)); // -Infinity
console.log(Math.log1p(-2)); // NaN
console.log(Math.hypot(3,4,5)); // 7.0710678118654755
console.log(Math.sign(NaN)); // NaN
console.log(Math.trunc(12.345)); // 0.345 버리고 12를 반환
console.log(Math.trunc(-1.234)); // -1
console.log(Math.imul(2,4)); // 8
/*
자바스크립트는 64비트 연산인데 32비트 값을 구한느 것ㅇ느 C++의 32비트와 호환성을 위해서이다.
이는 Emscripten 프로젝트를 위해서이다.
Emscripten 은 source-to-source 컴파일러 LLVM 컴파일러를 사용하여 자바스크립트 코드를 생성하는 프로젝트이다.
*/
console.log(Math.clz32(1)); // 31 -> 1을 32비트로 변환하면 왼쪽의 31개 비트에 0이설정되고 가장 오른쪽비트에 1이 설정
let value = 0.1+0.3;
console.log(value); // 4
console.log(Math.fround(value)); // 0.4000000059604645
// ----------------------------
// 유니코드 (Unicode)
console.log("\x31\x32\x33"); // 16진수 이스케이프 시퀀스
console.log("\u0031\u0032\u0033"); // UTF-16진수 형태로 U+0000 ~ u+FFFF까지 사용할수 있다.
console.log("\u{1f418}"); // ES6에서는 U+FFFF 이상의 값을 표현할수 있음
// https://unicode-table.com/en/1F418/ 에서 결과를 미리볼수있음
console.log("\uD83D\uDC18"); // ES5 버전
// fromCodePoint() : 코드 포인트 문자 반환
console.log(String.fromCodePoint(35,36,37)); // #$%
console.log(String.fromCodePoint(0x1F418)); // 🐘
// codePointAt() : 코드 포인트 값 반환
let values = "ABC";
for(var valuetemp of values){
console.log(valuetemp, valuetemp.codePointAt(0));
/*
A 65
B 66
C 67
*/
}
// includes() : 문자열 포함 여부
let target = "123가나다라마바사567";
console.log(target.includes(2)); // true
console.log(target.includes("다라")); // true
console.log(target.includes("12",5)); // 두번째 파라미터는 탐색 시작할 인덱스 // false
// startsWith() : 문자열 시작 여부
console.log(target.startsWith(123)); // true
console.log(target.startsWith("가나",3)); // true
// endsWith() : 문자열 종료 여부
console.log(target.endsWith(567)); // ture
console.log(target.endsWith("가나",5)); // true // 123가나 로 끝나고 여기서 가나로 끝맺음을 해서 true
// repeat() : 문자열 복제
console.log(target.repeat(2)); // 123가나다라마바사567123가나다라마바사567
console.log(target.repeat(2.7)); // 0.7을버리고 위와같은 결과를 반환
// normalize() : 유니코드 정규화 형식 변환
/*
파라미터에 유니코드로 변환하는 정규화 형식을 지정하며 디폴트는 NFC 입니다.
유니코드 정규화 형식은 네가지 타입이 있다.
1) NFC
2) NFD
3) NFKC
4) NFKD
*/
let jamo = "\u3131\u314F";
console.log(jamo.normalize("NFC")); // ㄱㅏ
console.log(jamo.normalize()); // ㄱㅏ
console.log(jamo.normalize("NFD")); // ㄱㅏ
console.log(jamo.normalize("NFKD")); // 가
console.log(jamo.normalize("NFKC")); // 가
반응형
'WEB > ECMAScript' 카테고리의 다른 글
RegExp Object / Generator Object (0) | 2020.02.25 |
---|---|
Template Literal / Array Object (0) | 2020.02.25 |
Number 오브젝트 (0) | 2020.02.25 |
Object - function 작성, assign(), is() (0) | 2020.02.23 |
Destructuring Assignment (0) | 2020.02.20 |