함수의 표현

함수 저장

mathod
객체에 저장된 값이 함수인 경우 이를 메서드라고 한다.
함수도 주소값을 변경할 수 있다.


this
메서드에서 객체 내부의 속성값을 접근할 수 있는 지시자
객체에 직접적으로 접근할 수 있다.
데이터별로 다르게 핸들링 할수 있다.
Number
ieee-754표준 기반 형태로 저장되는 자료형
10진수 외에도 16진수,2징수,8진수의 다양한 진수 사용.
16진수 : 0xFF
8진수 : 0o71
2진수 : 0b1101
대표 상수값

지수 표기법
아주 큰 숫자나 아주 작은 숫자를 표기하기 위해 지수 표기법(e)으로 0의 개수를 대체 표기할 수 있다.

진법 표기
진법 표기를 지원하기 위해 16,8,2진수를 N진수로 표기 가능
Number 상수값
지수로 표기되는 양수 최대/최소값 : Number.Max_VALUE,Number.MIN_VALUE
안전하게 표기되는 최대/최소값 : Number.MAX_SAFE_INTEGER,Numver.MIN_SAFE_INTEGER
무한대 양수/음수값:Number.positive_INFINITY,Number.NEGATIVE_INFINITY
부동 소수점 산술에서 정의되지 않거나 표현할 수 없는 값으로 해석될 수 있는 숫자 데이터 유형 : Number.NaN

대표 메서드
형 변환
Number to String : Number.toString(),String(Number),Number+""를 통해 변환가능

자리수표현
소수의 자리 수 길이를 제한 : Number.toFixed(pos)
정수와 소수의 자리 수를 합한 길이로 제한 : Number.to.Precision(pos)

Number 자료형 확인
부동 소수점 산술에서 정의되지 않거나 표현할 수 없는 값(NaN)인지 확인: Number.isNan()
정상적인 유한수인지 확인 : Number.isFinite()

정수와 실수 형 변환
정수로 변환하는 방법 : Number.parseInt()
실수로 변환하는 방법 : Number.parseFloat()

String
텍스트 길이에 상관없이 문자열 형태로 저장되는 자료형
글자 하나만 저장할 수 있는 char 자료형이 없음
페이지 인토딩 방식과 상관없이 항상 utf-16형식을 따름

문자 정의 표기
정의 방법
String 정의 방법 : ""(큰따옴표),''(작은 따옴표),String()
문자열과 변수 혼합 표현 방법 : `Hello`(역따옴표)

문자표기
/슬래시만 쳤을 경우 제대로 나오지 않는다.

문자열 길이
문자열 길이 확인 방법 : String.length

문자 접근
문자열 내 개별 문자 접근 방법

문자열 검색
index : String.indexOf(substr,pos),String.lastIndexOf(substr,pos)
bool : String.includes(substr,pos),String.startsWith(substr,pos),String.endsWith(substr,pos)
중복 문자가 있는데 정해진 문자열 순서로 찾고 싶을 경우 뒤에 순서를 적는다.
includes로 해당 적힌 문자열을 찾을 수 있다.(대소문자 구별O)
startWith로 처음에 해당된는 단어가 있는지 찾는다. 순서를 적으면 시작되는 지점을 변경 가능.
!!!도 문자열로 구분한다.

문자열 대소문자 변환

문자열 치환
처음 만나는 요소 문자열 치환 : String.replace
정규 표현식 활용 문자열 치홤 : 치환 문자열에 정규 표현식 기입
원본 텍스트는 그대로고 변경된 텍스트로만 나타난다.
중복이 될 경우 앞 순서의 하나만 변경된다.
전체적으로 변경할 경우 /변경문자열/g로 입력한다.
대문자도 변경하고 싶은 경우 /변경문자열/gi 로 표기.

문자열 추출
위치 기반 문자열 추출 : String.slice(start,end),String.substring(start,end)
하나만 입력할 경우 시작점 뒤부터 쭉 출력된다.
시작 위치가 클 경우에는 false로 판단해 오류발생
-1부터는 맨뒤순서다.
substring : slice와 달리 시작순서가 커도 작은 숫자를 시작으로 인식함.
길이기반 문자열 추출 : String.substr(start,length)

문자열 분할
배열로 문자열 분할 : String.split
나눌때 , 로 나누고 (" ")구분없이 적을 경우 ,를 인식하지 않고 하나의 데이터로 인식해버린다.
문자에 구분없이 할경우 문자열 하나하나로 쪼갠다.("hello")

Array배열
여러 개체값을 순차적으로 나열한 자료구조
배열 내 값을 요소라고하며, 배열 요소는 index로 접근.
다양한 자료형들을 같은 변수내 저장한다.자료를 정리하는데 있어서 최적화되어있음.
배열 추가/삭제 : 끝부분에 추가된다.push새로운 데이터를 뒤에 추가/pop뒤 데이터를 삭제하고 데이터를 pop의 인턴밸류로 보낸다./unshift는 데이터를 앞쪽에서 추가한다.shift는 앞쪽의 데이터를 보낸다.
대표 속성과 매서드

배열 기본 메서드
선언/접근/속성
선언 : new Array() 혹은 []를 통해 선언하며, 사이즈 혹은 값을 입력하여 초기화도 가능
접근 방법 : Array[index]를 통해 index를 통해 O(1)접근
배열 속성 : Array.length를 통해 배열 요소의 개수 확인 가능
arr_1 : 10개의 공간이 남았다.

배열의 실체
자바스크립트에서 배열은 다른 언어에서 말하는 일반적이 배열이 아닌 Hash기반의 객체
메모리가 연속적인 밀집 배열가 아닌 비 연속적인 희소 배열
0 : value 'one' / 1 : value 'two' = path기반
0,1(index)대신 문자열로도 작성 가능.(length는 2로 나오지만 값은 추가된 데이터로 작성된다.)

배열 타입 확인 및 요소 삭제
배열 타입 확인 : Array.isArray(value)

배열 요소 삭제 : delete array[index]
삭제 됐음에도 length에 배열순서가 그대로.일반적으로는 자주 사용하지 않음.

배열 조작
배열 추가(LIFO back : last in first out) : Array.push(element),배열 삭제:Array.pop()
삭제된 데이터가 반환되어 ret에 저장된다.

배열 추가 (LIFO front : last in first out)
: Array.unshift(element), 배열 삭제 : Array.shift()

배열 삭제/변경 : Array.splice(index[,deleteCount,elem1,...,elemN])
잘린 부분 그대로 남은 부분은 friuts에 반환된다.
중간범위만 날리고 싶을 때는 ((삭제할순서),(몇개 삭제할건지))

배열 요소 삭제 : Array.slice([start],[end])
잘라도 실제로 데이터에 영향을 미치지 않는다.
(1,2) > (,orange,)가 범위
-1부터 순서는 배열순서와 같다.

배열 병합
다중 배열 병합 : Array.concat(arg1,arg2...)
기본 배열에서 새로운 배열을 추가하고 싶을때.

배열 반복문
다양한 반복문 문법을 통해 배열 요소에 접근 가능
반복문 문법 : for ...length(index접근),for ... of (element접근), for ... in(key 접근)
index가 아닌 새로운 let변수를 생성하도 같은 결과가 나온다.
key의 경우 하나하나의 index가 발생 (0 , 1 , 2)

배열 탐색
index 탐색(앞) : Array.indexOf(item,from)
index탐색(뒤) : Array.lastIndexOf(item,from)
값포함 여부 확인 : Array.includes(item,from)
배열내에 없을 경우 -1로 결과값 출력
lastIndexOf (orange,-3)의 경우 -3위치에서 뒤로가 순서를 찾아라 라는 뜻.(0의 뒤에는 아무것도 없으므로 -1이 뜬다)

배열 변형
배열 정렬/반전
정렬 : Array.sort(), 반전 : Array.reverse()

배열 변환
배열 값을 문자열로 변환 : Array.join(separator;;)
()일경우 ,기준으로 순서가 유지된다.
;로 할경우

고차 함수
하나 이상의 함수를 매개변수로 취하거나 함수를 결과로 반환하는 함수
매개변수로 전달되는 함수는 콜백 함수

'언어공부-프론드엔드 > javascript' 카테고리의 다른 글
| 후발대)배열,for문 배운 1일차 (0) | 2022.12.05 |
|---|---|
| [2주차] 스파르타코딩클럽 - 웹개발 (0) | 2022.07.08 |
| [1주차]스파르타코딩클럽 - 웹개발 (0) | 2022.07.04 |
| [1주차]스파르타코딩클럽-앱개발 (0) | 2022.06.30 |
| 제로베이스 공부(~함수) (0) | 2022.06.26 |