22.08.06
9. 핸드폰 번호 가리기
● 전화번호를 뒤에서 4자리를 제외한 나머지 숫자를 *로 바꾸기
○ 숫자를*로 변환하고 index로 뒤에서 4자리까지만 예외처리
10. 행렬의 덧셈
● 2개의 행렬 arr1과 arr2를 입력받아 덧셈의 결과를 반환시키기
○ 감이 안오는데 구글링을 해봐야겠음!
◎
11. x만큼 간격이 있는 n개의 숫자
● x부터 시작을 해서 x씩 n번 증가
○ for (let i = x; i<n.length; i++)
12. 부족한 금액 계산하기
●
○
13. 2016년
● a월 b일 의 요일을 변환시켜주기
○ 감이 안오는데 구글링을 해봐야겠음!
●변수
자바스크립트에서는 데이터를 저장하는 공간을 변수라고 한다
변수 공간을 생성한는 방법 :
num = 3;
1. 적절한 이름을 지어준다
2. 마지막에 세미콜론(;)을 찍어준다
3. num이라는 변수 공간이 생성되고 3이라는 값이 들어간다
변수라는 공간을 생성하기 위해 이름을 지워주는것은 "변수를 선언한다"라고 하고
선언된 변수에 값을 넣는행위를 "데이터를 할당한다"라고함
console.log(num);
변수=변할수있는 수
num = 3;
console.log(num);
num = 10;
console.log(num);
을 입력하면 3,10둘다 찍힘
●데이터
데이터 = 값과 값의 유형(value와 type)을 합친 용어
●암시적 선언
변수를 선언하는 방법을
var, let const를 사용하지않고 변수를 선언하는것
●명시적 선언
var, let, const를 사용해서 선언하는것
var num = 3;
●var, let, const
var : 자바스크립트 초창기 변수선언 키워드 - 중복선언 가능
let : 중복선언 불가능 - (^)표시로 체크해주면서 에러 발생
const : 중복선언 불가능 - let과 동일 대신 let과 다른 한점이 있는데
let은 변수에 할당된 데이터가 변경이 되는데 const는 불가능
let num = 10;
console.log(num);
num = 20;
console.log(num);
출력하면 10,20이 나옴
const는 에러가 뜸
var,let은 변수라 불림
const는 변수가 아니라 상수로 불림(변하지가 않기때문에)
●카멜케이스
변수 이름은 카멜케이스 방식으로 작성해야함
카멜케이스란 단어의 첫 글자는 소문자인데 연결된 단어의 첫글자는 대문자로 작성
let userName = "ㅇ쩌고 저쩌고";
●변수 이름은 문자,_,$ 로만 시작 가능 숫자로시작하거나 다른 특수문자는 불가능
●상수나 축약어는 대문자로 작성 스네이크방식으로 작성
●띄어쓰기는 '_'로 작성
변수로는 변수로 쓸수없음
const var = 'asdas' 이러면 안됌
[[ㄴㅁㅇ][ㅁㄴㅇ][ㅁㄴㅇ]] 다중리스트,2차원배열
let, const를 사용하면 var을 사용할때보다 상당히 이점이 많다
두개의 공통점은 var과는 다르게 변수 재선언이 불가능하다
let, const의 차이점은 변수의 immutable여부이다
let은 변수에 재할당이 가능하지만 const는 변수 재선언,재할당이 모두 불가능하다
let,const가 추가되기 전까지는 var만 사용되었다
https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d
변수(variable)는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.
- 변수란?
가변적인 데이터를 담을 수 있는 대상 혹은 공간
- 변수가 필요하는 이유?
프로그램에서 가독성을 높여주고⬆️ 유지보수에 좋다.
복잡한 코드를 변수 안에 저장하면, 필요할때 변수명을 불러서 데이터 값을 불러낼 수 있다
- 변수를 선언하는 방법
선언 (declare)
var, const, let
할당
변수에 값을 할당 할 때에는 할당 연산자(=)를 사용한다.
- var 문제점
변수 중복 선언 가능으로 , 예기치 못한 값을 반환
함수 레벨 스코프를 인해 함수 외부에서 선언한 변수는 모두 전역 변수로 된다
변수 선언문 이전에 변수를 참조하면 언제나 undefined를 반환된다.
- 해결방안
let, const 사용
JS 맨 윗줄에 ‘use strict’ 선언 후 사용
https://velog.io/@alicia-mkkim/TlL-4-%EB%B3%80%EC%88%98%EA%B0%80-%ED%95%84%EC%9A%94%ED%95%9C-%EC%9D%B4%EC%9C%A0%EC%99%80-%EC%84%A0%EC%96%B8%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95
리듀서 함수는 네 개의 인자를 가집니다.
누산기 (acc) 데이터 레지스터로 처리 결과를 임시로 보유하는 역할 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sunnytop89&logNo=110122289854
현재 값 (cur)
현재 인덱스 (idx)
원본 배열 (src)
reduce 함수는 *반복 가능한 객체(iterable object) 내 각 요소를 연산한 뒤 이전 연산 결과들과 누적해서 반환해 주는 함수입니다.
*반복 가능한 객체(iterable object)란 말 그대로 반복이 가능한 객체로서 요소가 하나의 객체에 여러 개가 들어있고, 한 번에 하나의 요소씩 사용할 수 있는 객체를 말합니다. 대표적으로는 문자열(string), 리스트(list), 딕셔너리(dictionary), 세트(set)가 있습니다.
참고로 파이썬3부터는 reduce가 내장 함수가 아니기 때문에 functools 모듈에서 reduce 함수를 불러와야 합니다.
문자열의 길이가 홀수일 때 2로 나누면 나눈 값은 소숫점이 될 것이다. 그러므로 나눈 값에 Math.floor()메서드를 사용해 반내림을 해주어야 한다. 반올림이 아닌 반내림을 하는 이유는 인덱스는 0부터 시작하기 때문이다.
fuction 함수명(매개변수){
코드
return 리턴값
}
parseInt(t1 / t2); //몫
parseInt(t1 % t2); //나머지
==vs===
a = 1;
b = "1";
==은 숫자열인지 문자열인지 종류를 나누지 않고 1이면 true
===은 숫자열인지 문자열인지 종류에 대해서도 엄격함 false
에로우 함수 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
0이랑 nat a num 빈값 언디파인드 빈문자열 등은 항상 폴스
스트링 = 문자열
slice메소드★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
s.slice (logic,logic+1) = (이상 미만)
컨티뉴
for문에 in, of 차이는
array - ['a', 'b', 'c']
for (const i in array) //012 - 인덱스 (자체를 가져온다)
for (const i of array) // abc - 요소 (하나하나 가져온다)
for (let i = 0; i < array/length; i==) 는 of문이랑 같음
for in문
[2배 + 3배 + 4배 +5배...]
[*2 *3 *4 *5 ...]
price * 1,2,3,4,... count를 인덱스
카운트 까지의 배수를 각각
price에 곱한후 더하기 (array.reduce)
하면 이용 금액이 나오고
(이용금액 - money) 삼항연사자를써서
음수이면 부호를뺀 정수, 양수이면 0으로 반환
백준 사이트(단계별로 풀어보기)
+=는 오른쪽 피연산자의 값을 변수에 더한 결과를 다시 변수에 할당