FE : HTML / CSS / JS(AJAX) / React / (SASS) / (jQuery) / SEO // github // 웹팩 // 정규표현식
BE : JS / tailwind or bootstrap / Node / DB / github / Server / HTTP
백엔드에 노드가 속함.
HTML/CSS / (SASS) / JS / (jQuery) / React + Node(한번쯤 경험 좋음)
+)
배열을 만드는 여러가지 방법
let 과일 = ['사과', '수박', '복숭아', '딸기', '바나나'];
let 과일 = ['사과', '수박', '복숭아', '딸기', '바나나'];
let 과일2 = new Array(5);
let 과일3 = new Array('사과', '수박', '복숭아', '딸기', '바나나');
배열은 호출로 바꿀 수 있지만, 다른 것(문자열_)은 안된다. !
'01001'.replace(/0/g, ' ').replace(/1/g, '#')
string으로 더해진다.
in : sample 안의 요소 인덱스
of : sample 안의 요소
// 숫자 타입
0 + '' // -> "0"
-0 + '' // -> "0"
1 + '' // -> "1"
-1 + '' // -> "-1"
NaN + '' // -> "NaN"
Infinity + '' // -> "Infinity"
-Infinity + '' // -> "-Infinity"
// 불리언 타입
true + '' // -> "true"
false + '' // -> "false"
// null 타입
null + '' // -> "null"
// undefined 타입
undefined + '' // -> "undefined"
// 심벌 타입
(Symbol()) + '' // -> TypeError: Cannot convert a Symbol value to a string
// 객체 타입
({}) + '' // -> "[object Object]"
Math + '' // -> "[object Math]"
[] + '' // -> ""
[10, 20] + '' // -> "10,20"
(function(){}) + '' // -> "function(){}"
Array + '' // -> "function Array() { [native code] }"
산술연산자 (+) 문자가 숫자보다 우선시 됨
암시적으로 js엔진이 자동으로 데이터 타입을 변환시켜줌
number + number // number
number + string // string
string + string // string
string + boolean // string
number + boolean // number
(전교점수[0][0][0] + 전교점수[0][0][1] + 전교점수[0][0][2] + 전교점수[0][0][3] + 전교점수[0][0][4]) / 5
30
let 총합 = 0;
for(let i=0; i < 5; i++){
총합 += 전교점수[0][0][i];
}
총합
150
(전교점수[0][1][0] + 전교점수[0][1][1] + 전교점수[0][1][2] + 전교점수[0][1][3] + 전교점수[0][1][4]) / 5
40
let 총합2 = 0;
for(let i=0; i < 5; i++){
총합2 += 전교점수[0][1][i];
}
총합2
200
과일.push('a'); : 맨 뒤에 집어넣는다.
unshift() 메서드는 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다.
슬라이스는 -1(배열마지막 적용가능)
but 과일[-1] = undefined 아직 안됨!
splice(앞 인덱스 번호, 개수)
splice(1,3,'apple'); 1부터 3이 잘라진 곳에 apple이 들어가기도 한다.
변수명.concat(b변수명);
사전식 정렬
아스키 순서라서 정렬이 제대로 되지 않습니다. 숫자 같은 경우에는 그래서 오름차순은, 내림차순은 따로 명시해줘야합니다.
asc / desc 오름차순 / 내림차순
data.sort((a, b) => a - b) // 오름차순
data.sort((a, b) => b - a) // 내림차순
data =[22,25,11,20,30,10,111]
key : value
호출할 때 [key] : value
(대괄호)
personname name을 변수로 인식
person.name (o) person이란 멤버안에서 찾는다. 멤버연산자.
한가지 방법만 생각하기. person['name']
-- Object.keys(person) Object.values(person)식으로 가능.
배열안에 배열로 key와 value값을 넣어준다.
반복문 안에 좋음 .
한꺼번에 반복문으로 출력할 때 좋다.
-unpacking 묶여있는 것을 풀어내는것.
-console.log(Object.getOwnPropertyDescriptor(person, 'name'));
// value: '이호준',
// writable: true, // 변경 가능 여부, 기본값 false
// enumerable: true, // 열거(for) 가능 여부, 기본값 false
// configurable: true // 재정의 가능 여부, 기본값 false
함수 선언(function declaration)방식을 이용하면 만들 수 있다.
함수를 사용하는 이유
1. 재사용성
2. 아키텍처 파악하기 쉽다
3. 유지보수 ..등
위 함수에는 매개변수가 없는데, 만약 매개변수가 여러 개 있다면 각 매개변수를 콤마로 구분해준다. 이어서 함수를 구성하는 코드의 모임인 함수 본문(body)을 중괄호로 감싸 붙여준다.
함수 내부에서 함수 외부의 변수인 외부 변수에 접근할 수 있다.
수정도 할 수 있다.
전역 변수 : 함수 외부에 선언된 변수
파선아실 = 함수를 '파'라미터로 '선'언하고 '아'규먼트로 '실'행한다!
매개 변수(parameter)
임의의 데이터를 함수 안에 전달할 수 있다.
매개변수는 인수(argument)라고 불리기도 한다.
(*) (**) 로 표시한 줄에서 함수를 호출하면, 함수에 전달된 인자는 지역변수 from과 text에 복사된다. 그 후 함수는 지역변수에 복사된 값을 사용한다.
전역 변수 from이 있고, 이 변수를 함수에 전달
함수가 from을 변경하였지만, 변경 사항은 외부 변수 from에 반영되지 않았다. 함수는 언제나 복사된 값을 사용하기 때문.
함수 호출자리에 return 값 나온다.
종료할 때 쓴다.
return 은 함수 내 어디서든 사용할 수 있다.
변수명에 함수 선언하면 -> let h
let a = 100;
let b = 200;
{a, b}
200
let c = {a, b}
undefined
c
{a: 100, b: 200}
let c = {
'a':100,
'b':200
}
undefined
c
{a: 100, b: 200}
{100, 200}
200
let 오브 = {
a,
b
}
undefined
오브
{a: 100, b: 200}
![](https://velog.velcdn.com/images%2Fyellow_ing%2Fpost%2F9b67755c-eda3-4f44-928f-876c4494da55%2Fimage.png)
var는 함수 스코프안에서 지역변수 취급 ...
javascript >> head 일부 + html 로드 한 다음 받아야하기에 body에 넣기.
함수 선언문은 코드를 구현한 위치와 관계없이 자바스크립트의 특징인 호이스팅에 따라 브라우저가 자바스크립트를 해석할 때 맨 위로 끌어 올려진다.
런타임 이전에 함수 객체가 생성이 되므로 함수가 정의되기 전에 함수를 호출할 수 있다. 미리 함수 호출해도 가능, 클로저 상황에 많이 사용
함수 표현식으로 선언된 함수는 함수 호이스팅 발생
JavaScript는 초기화를 제외한 선언만 호이스팅, 변수를 먼저 사용하고 그 후에 선언 및 초기화가 나타나면 사용하는 시점의 변수는 기본 초기화 상태
console.log(num); // 호이스팅한 var 선언으로 인해 undefined 출력
var num; // 선언
num = 6; // 초기화
다음 예제는 선언 없이 초기화만 존재. 따라서 호이스팅도 없고, 변수를 읽으려는 시도에서 예외발생
console.log(num); // ReferenceError 예외 발생
num = 6; // 초기화
함수는 어떤 동작을 수행하기 위한 코드를 모아놓은 것.
따라서 함수의 이름은 대개 동사. 함수 이름은 가능한 한 간결하고 명확해야 한다.
함수가 어떤 동작을 하는지 설명할 수 있어야 한다. 코드를 읽는 사람은 함수 이름만 보고도 함수가 어떤 기능을 하는지 힌트를 얻을 수 있어야 한다.
따라서 함수의 이름은 대개 동사. 함수 이름은 가능한 한 간결하고 명확
함수가 어떤 동작을 하는지 설명할 수 있어야 한다.
함수가 어떤 동작을 하는지 축약해서 설명해주는 동사를 접두어로 붙여 함수 이름을 만드는게 관습 .
배열이란? 번호(index)와 대응하는 데이터들로 이루어진 자료구조.
디버깅이란? 컴퓨터의 프로그램 개발 단계 중에 발생하는 시스템의 논리 오류나 비정상적인 연산을 찾아내고, 그 원인을 밝히고 수정하는 작업과정을 뜻함
console.log > 압도적으로 이용빈도가 높은 디버깅 방법. Js console.log인수로 설정한 값은 디버거 콘솔로 표시하는 함수