기본 내장함수들 https://wickies.tistory.com/25
내가 뭘 어떻게 가지고 올 수 있는지 기억하자!
setTimeout(function, millisecond) : 지정된 시간 후 함수를 한 번 실행(밀리초 단위)
setInterval(function, millisecond) : 지정된 시간마다 함수를 반복 실행
*위 두 함수는 타이머 id를 리턴값으로 가짐 -> id를 변수에 저장해둬야 중지 가능
clearTimeout(id) : setTimeout 함수 중지
clearInterval(id) : setInterval 함수 중지
영문 알파벳과 숫자, 일부 특수문자(@ * - _ + . /)를 제외하고 인코딩
1바이트 문자는 %XX, 2바이트 문자는 %uXXXX 형태로 변환
escape 함수와 같으나 일부 특수문자(: ; / = ? &) 제외
알파벳과 숫자를 제외한 모든 문자 인코딩
utf-8 인코딩과 동일
문자열을 코드로 실행할 수 있는 함수
형식: eval(string);
예시
var a = ''; // a변수 문자열 타입 초기화
a+='var num=3;'; // a변수에 num 변수 선언 코드를 추가
a+='alert(num);'; // a변수에 알림창 발생 코드를 추가
eval(a); // a에 저장된 스크립트가 실행되어 알림창 발생
var b = num; // eval로 실행된 코드에서 정의한 변수 num 이용 가능(스크립트 실행으로 인해)
-> b의 값: 3
*주의점: 스크립트 실행이 가능하기 때문에 보안상의 문제 발생 소지가 있음
-> 자바스크립트의 숫자 타입 중 Infinity(무한대)와 NaN(not a number)을 확인하는 함수
isFinite() : 무한한 값인지 확인
isNaN() : NaN인지 확인
*자바스크립트에서는 숫자를 0으로 나누면 에러가 나지 않고 infinity라는 값이 들어감
Number(string) : 문자열을 정수값으로 변환(숫자로 변환할 수 없을 때 NaN 반환)
parseInt(string) : 문자열을 정수값으로 변환(숫자로 변환할 수 있을 때 까지만 변환)
parseFloat(string) : 문자열을 실수값으로 변환
-> 숫자+문자열 형태의 문자열 변환 가능(ex. parseInt('1000원') = 1000)
-> 첫 문자부터 계산하기 때문에 첫 문자가 수가 아닐 땐 변환 불가(ex. parseInt('$10')=NaN)
*주의할 점
문자열이 0으로 시작하면 8진수, 0x로 시작하면 16진수로 인식
parseFloat의 경우 문자열 중간에 e가 들어가면 자릿수로 인식
자바스크립트의 최상위 객체
생성
var object={};
var object=new Object();
constructor() : 객체의 생성자 함수를 나타냄
hasOwnProperty(name) : 객체가 name 속성을 가지고 있는지 확인
isPrototypeof(object) : 객체가 object의 프로토타입인지 검사
propertyIsEnumerable(name) : 반복문으로 열거 가능 여부 확인
toLocaleString() : 객체를 호스트 환경에 맞는 언어의 문자열로 변경
toString() : 객체를 문자열로 변경
valueOf() : 객체의 값을 표시
숫자를 표현할 때 사용하는 객체
생성
var num = 1;
var num = new Number(1);
toExponential() : 숫자를 지수 표시로 나타낸 문자열 리턴 // 유효 숫자의 자릿수
toFixed() : 숫자를 고정 소수점 표시로 나타낸 문자열 리턴 // 소수점 자릿수
toPrecision() : 숫자를 길이에 따라 지수 표시 혹은 고정 소수점 표시로 나타낸 문자열 리턴
MAX_VALUE : 자바스크립트에서 표현 가능한 최대 숫자
MIN_VALUE : 자바스크립트에서 표현 가능한 최소 숫자
NaN : Not a Number
POSITIVE_INFINITY : 양의 무한대 수
NEGATIVE_INFINITY : 음의 무한대 수
length : 문자열의 길이를 표시
charAt(position) : 해당 인덱스 문자 반환
charCodeAt(position) : 해당 인덱스 문자를 유니코드로 반환
concat(args) : 매개변수로 입력한 문자열을 결합
indexOf(searchString, position) : 앞에서부터 일치하는 문자열의 인덱스 반환
lastIndexOf(searchString, position) : 뒤에서부터 일치하는 문자열의 인덱스 반환
match(regExp) : 문자열 안에 regExp가 있는지 확인
replace(regExp, replacement) : 문자열 안의 regExp를 replacement로 바꾼 뒤 리턴
search(regExp) : regExp와 일치하는 문자열의 위치 반환
slice(start, end) : 특정 위치의 문자열을 반환
split(separator, limit) : separator로 문자열을 자른 후 배열로 반환
substr(start, count) : start부터 count까지 문자열을 잘라서 반환
substring(start, end) : start부터 end까지 문자열을 잘라서 반환
toLowerCase() : 문자열을 소문자로 바꾸어 반환
toUpperCase() : 문자열을 대문자로 바꾸어 반환
anchor() : 문자열에 a태그 추가
big() : big태그 추가
blink() : blink 태그 추가
bold() : b 태그 추가
fixed() : tt 태그 추가
fontcolor(colorString) : font 태그와 color 속성을 추가
fontsize(fontSize) : font 태그와 size 속성을 추가
italics() : i 태그 추가
link(linkRef) : a 태그와 href 속성 추가
small() : small 태그 추가
strike() : strike 태그 추가
sub() : sub 태그 추가
sup() : sup 태그 추가
*String 객체는 문자열의 내용을 바꾸지 않고 반환하기 때문에 메소드 체이닝 가능
배열을 표현할 때 사용하는 객체
생성
var array=[값1, 값2...]; // 생성과 동시에 초기화
var array=new Array(); // 배열을 생성하기만 함
var array=new Array(배열크기); // 생성과 동시에 공간을 만들어 둠
var array=new Array(값1, 값2); // 생성과 동시에 초기화
length : 배열의 크기를 반환
Array.isArray() : 배열인지 확인
속성을 변화시키는 메소드
pop() : 배열의 마지막 요소를 제거 후 리턴
push() : 배열의 마지막에 새로운 요소 추가
reverse() : 배열의 요소 순서 반전
sort() : 배열 요소 정렬// 기본값은 문자열 오름차순
*내림 차순으로 정렬: array.sort((a,b)=>{return b-a});
*셔플: arr.sort(()=>{return 0.5-Math.random()});
splice() : 요소의 지정된 부분 삭제 후 삭제한 요소 리턴
속성을 변화시키지 않는 메소드
slice() : 요소의 지정한 부분 반환
concat() : 매개변수로 입력한 배열의 요소를 모두 합쳐서 배열 생성 후 반환
join() : 배열 안의 모든 요소를 문자열로 변환 후 반환
indexOf() : 배열의 앞쪽부터 특정 요소의 위치 검색
lastIndexOf() : 배열의 뒷쪽부터 특정 요소의 위치 검색
반복 메소드
forEach() : 배열을 for in 반복문처럼 사용 가능
*사용 형태 array.forEach(function (element, index, array) {}); // 배열요소, 인덱스, 배열자체
map() : 기존의 배열에 특정 규칙을 적용해서 새로운 배열 생성
*사용 형태 var array2= array.map(function (element) {return element + 연산 });
조건 메소드
filter() : 특정 조건을 만족하는 요소를 추출해 새로운 배열 생성
*사용 형태 array = array.filter(function (element, index, array) { return element < 5; });
every() : 배열의 요소가 조건을 만족하는지 확인
some() : 배열의 요소가 특정 조건을 적어도 하나는 만족하는지 확인
*사용 형태 array.every(function (element, index, array) { return element < 10; });
-> every는 모든 요소, some은 단 하나라도 조건에 부합하는지 확인 후 true or false 반환
연산 메소드
reduce() : 배열의 요소가 하나가 될 때까지 요소를 왼쪽부터 두 개씩 묶는 함수 실행
*객체를 1:1로 짝지으며 기존 배열을 수정하지 않는 함수
reduceRight() : 위와 같으나 오른쪽부터 실행
*사용 형태 array.map((element, index, array) => { return 요소 } iniNum);
*Array 객체에는 특정 요소를 제거하는 객체가 없음
Array.//prototype//.remove =function (i) { this.splice(i, 1); } // 프로토타입에 remove 함수 추가
arr.remove(i); // 해당 인덱스 값 제거
날짜와 시간을 표시하는 객체
생성
var date = new Date(); // 매개변수를 입력하지 않으면 현재 시각으로 초기화
문자열: new Date('December 11, 2018');
숫자: new Date(2018, 12, 11, 2, 24, 23); // 연, 월-1, 일, 시, 분, 초, 밀리초 순서
Unix time: new Date(1351511); // 1970년 1월 1일 12시 자정 기준으로 경과한 시간(밀리초)
getTime() : Unix time 반환, 날짜 간격 계산시 사용
*메소드가 매우 많지만 대부분 get, set으로 이루어져 있으며 메소드명으로 기능 유추 가능
*getYear()메소드는 브라우저에 따라 다른 결과를 반환하기도 하니 getFullYear() 사용
수학과 관련된 속성과 메소드를 가진 객체
Math 객체는 함수가 아닌 변수 // Math.속성 형태로 사용
기본 내장 객체 중 유일하게 생성자를 사용하지 않음
abs() : 절대값 반환
acos() : 아크 코사인 값 반환
asin() : 아크 사인 값 반환
atan() : 아크 탄젠트 값 반환
atan2(y, x) : x와 y의 비율로 아크 탄젠트 값 반환
ceil() : 크거나 같은 가장 작은 정수 반환
cos() : 코사인 값 반환
exp() : 자연로그의 제곱 반환
floor() : 작거나 같은 가장 큰 정수 반환
log() : 로그 값 반환
max() : 매개변수 중 가장 큰 값 반환
min() : 매개변수 중 가장 작은 값 반환
pow(x, y) : x의 y제곱 반환
random() : 0부터 1까지의 임의의 수 반환
round() : 반올림해서 반환
sin() : 사인 값 반환
sqrt() : 제곱근 반환
tan() : 탄젠트 값 반환
자바스크립트 객체 형태를 갖는 문자열
JSON 객체의 메소드
JSON.stringify() : 자바스크립트 객체를 JSON 문자열로 변환
*객체 속성을 object 등이 아닌 문자열로 전체 다 확인 가능
jSON.parse() : JSON 문자열을 자바스크립트 객체로 변환
toJSON: function() {return 객체}; : 객체 내에 toJSON 메소드가 있으면 해당 메소드의 리턴값만 반환, 없으면 모든 키와 속성 반환