변수 기초
1. 변수란(variable)?
- 데이터보관함이다.
- 이름(label)이 붙은 값을 말 하고,선언후 할당,재할당을 통해 이용가능하다
- var 의경우 재선언,재할당이가능하다
- let 의경우 재선언x 재할당o
- const 의 경우 재선언,재할당 둘다 안되고 한번에 선언과 할당이 이루어 져야함
1. 원시자료형(primitiv, 객체가 아니면서 메서드도 가지지 않는 데이터)
- 숫자(number) //원시자료형
- 문자열(string) //원시자료형
- 참거짓(boolean) //원시자료형
- undefined //원시자료형
- null //원시자료형
- symbol //원시자료형
- bigint //원시자료형
2. 참조자료형(reference data type,원시 자료형이 아닌 모든 것)
- 참조자료형은 데이터보관함(변수)엔 주소가 저장되고,별도의 데이터보관함 인 heap에 데이터가 저장된다
- 배열(array) // 참조 자료형
- 객체(object) // 참조 자료형
- 함수(function) //참조 자료형
3.typeof
- typeof datetype 을통해 type확인이 가능하다
4.비교연산자 === 과 !==
- 비교연산자는 불리언을 반환한다
- ===인경우 같은지 !==인경우 같지않은지를 묻는다
- 비교연산자 == 인경우 정확한데이터비교를 할수없으니 지양하도록 한다
1.함수를 왜 사용하나?
반복적인 일을 해결하기위해2.함수란 무엇인가
- 지시사항의 코드 묶음
- 기능의 단위
- 입력과 출력을가진다
- 호출시 다시 돌아(return)온다
3.함수를 어떻게 만들고 사용하나
1) 함수 선언식function(base,height){ let triangleArea =(base*height)/2 return triangleArea }
2) 함수 표현식
const getTriangleArea =fuction(base,height){ let triangleArea =(base*height)/2 return triangleArea }
3)화살표 함수
const getTriangleArea = (base, height) =>{ let triangleArea =(base*height)/2 return triangleArea } **함수 본문에 리턴문만 있다면,** const getTriangleArea =(base,height) =>{base*height/2}
4.함수표현식의 평가
0) 함수 선언후 /함수 표현식으로 대입 /화살표함수로 함수 제작
1) 함수호출
2) 주소를 참조해 heap에서 조회
3) 매개변수(parameter)는 호출시 전달인자(argument)로 바뀜
4) 함수의 바디 코드실행
5) 리턴값 출력
falsy한 값
- 0
- NaN(Not-a-Number//숫자를 계산하는 경우 문자나 숫자가 아닌 값이 들어가 결과가 꼬인경우 출력)
- false
- null
- undefined
- ''
논리 연산자
피연산자가 불린인경우 불린값반환
- 논리연산자 or ( || )
alert( true || true ); // true alert( false || true ); // true alert( true || false ); // true alert( false || false ); // false
- 논리연산자 and ( && )
alert( true && true ); // true alert( false && true ); // false alert( true && false ); // false alert( false && false ); // false
피연산자를 반환하는경우
1.첫 번째 truthy를 찾는 OR 연산자 ‘||’
result = value1 || value2 || value3;
- 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가합니다
- 각 피연산자를 불린형으로 변환합니다. 변환 후 그 값이 true이면 연산을 멈추고 해당 피연산자의 변환 전 원래 값을 반환합니다.
- 피연산자 모두를 평가한 경우(모든 피연산자가 false로 평가되는 경우)엔 마지막 피연산자를 반환합니다
2.첫 번째 falsy를 찾는 AND 연산자 ‘&&’
result = value1 && value2 && value3;
- 가장 왼쪽 피연산자부터 시작해 오른쪽으로 나아가며 피연산자를 평가합니다.
- 각 피연산자는 불린형으로 변환됩니다. 변환 후 값이 false이면 평가를 멈추고 해당 피연산자의 변환 전 원래 값을 반환합니다.
- 피연산자 모두가 평가되는 경우(모든 피연산자가 true로 평가되는 경우)엔 마지막 피연산자가 반환됩니다.
조건부 연산자'?'
let result = condition ? value1 : value2;
- 조건에 따라 다른 값을 변수에 할당해주고 싶을때
let user ={name:'jiwwong',age:26}; let accessAllowed = (user.age > 18) ? 'yes' : 'no'; console.log(accessAllowed)// yes
조건문사용시 순서
- 가장 지엽적인 조건을 순서대로 작성한다.
``(백틱)장점
- 줄바꿈을 허용한다
- ${변수}이용 가능
문자열 메소드
1.특정위치접근/변경 불가
let desc ='안녕하세요'; desc[2]//'하' desc[4]='용'; console.log(desc) ;//'안녕하세요'
2.toUpperCase()/toLowerCase()
대문사나 소문자로 바꿈,원본 안바뀜let str = 'My name is' str.toUpperCase() str.toLowerCase()
3.str.indexOf(text)
text가 있으면 첫번쨰 text의 인덱스 반환,없으면 -14.str.trim():앞 뒤 공백제거
5.str.repeat(n): str을 n번 반복
6.str.incloudes(text) str에 text가있으면 true/없으면 false
7. str.length:문자열의 길이를 반환
8.str.slice(start,end)
- str.slice(2)
str의 2번째인덱스부터 끝까지- srt(1,3)
sratr는인데스포함,end는 인덱스 미포함
첫번째인덱스부터 3번째인덱스전까지- str.slice(2,2)
str의 2번째인덱스부터 2번째인덱스미포함까지 => ''- str.slice()
인덱스가 초과한경우 빈값반환- srt.slice(1,-1)
첫번째인덱스부터 배열의끝에서부터 매기는 인덱스까지9.str.substring()
- 기본적인 틀은 slice와 같음
10.str.split()
- 문자열을 배열로 바꿈
- 구분자를 이용해 배열을 여러형태로 담을 수 있음
const str = 'The quick brown fox jumps over the lazy dog.'; const words = str.split(' '); console.log(words[3]); // expected output: "fox" const chars = str.split(''); console.log(chars[8]); // expected output: "k" const strCopy = str.split(); console.log(strCopy); // expected output: Array ["The quick brown fox jumps over the lazy dog."]
11.str.join()
- 배열의 모든 요소를 연결해 하나의 문자열로 만듦.
const elements = ['Fire', 'Air', 'Water']; console.log(elements.join()); // expected output: "Fire,Air,Water" console.log(elements.join('')); // expected output: "FireAirWater" console.log(elements.join('-')); // expected output: "Fire-Air-Water" console.log(elements.join(' ')); // expected output: "Fire Air Water"
0.반복문을 언제 사용하나?
- 같거나 비슷한 코드를 여러번 실행시켜야 할 경우
1.반복문 for
for(처음;조건식(반복문의동작기간);마지막(증감문) ){ 반복할 내용 }
2.반복문 while
let i =0 //반복문카운터 변수선언 while(조건식){ 반복할내용 i++(증감문) }
3.반복문 for과 while의 차이
반복횟수가 정해진 경우 for을 쓰고 무한루프나 특정 조건에 만족할 때까지 반복해야 하는 경우 while을 사용함
4.continu와 breake
- break
break를 사용하면 언제든 원하는 때에 반복문을 빠져나올 수 있다.let sum = 0; while (true) { let value = +prompt("숫자를 입력하세요.", ''); if (!value) break; // (*) sum += value; } alert( '합계: ' + sum );
- continue
continue는 현재 반복을 종료시키고 다음 반복으로 넘어가고 싶을 때 사용할 수 있습니다for (let i = 0; i < 10; i++) { // 조건이 참이라면 남아있는 본문은 실행되지 않습니다. if (i % 2 == 0) continue; alert(i); // 1, 3, 5, 7, 9가 차례대로 출력됨 }
5.이중 반복문
바뀌는변수가 두개이면 이중반복문을 떠올려라