키워드 : html css bootstrap js
간단한 자바스크립트 기능과 css로 정적 페이지를 구현하는 법을 배웠다! 심화과정 4번째
자바스크립트를 알아보자.
자바스크립트 연습용 툴 1 : 크롬 개발자도구
자바스크립트 연습용 툴 2 : 코드 샌드박스 https://codesandbox.io/
자바스크립트 연습용 툴 3 : vscode
문법강의 참고 : 자바스크립트 문법 뽀개기
자바스크립트 강의 https://learnjs.vlpt.us/basics/01-hello-javascript.html
변수 : 왼쪽에 선언, 오른쪽에 값
값이 변할 수 있어서 변수
let apple = 'red'
상수 : 왼쪽에 선언, 오른쪽에 값
const banana = 'yellow'
상수는 한번 선언되면 값이 변하지 않는다!
숫자(Number) = 그냥 써도 됨
문자열(String) = ''나 ""나 ``
참/거짓(Boolean) = true / false
null = 이 값이 없음을 선언
undefined = 아직 값이 설정되지 않은(언젠가 있을) 객체
a++ : 1을 더한다음 1을 더하기 직전 값을 보여줌
++a : 1을 더한다음 1을 더한 값을 보여줌
let a = 1;
a += 3;
a -= 3;
a *= 3;
a /= 3;
console.log(a) : 1
!: NOT - true를 false로, false 는 true로
const a = !true;
&&: AND - 양쪽 다 true일때만 true
const a = true && true;
console.log(a);
||: OR - 하나라도 true라면 true
let t = true || false;
리액트에서 유용하게 쓰이니까 모양을 잘 연습하자.
! : 1 위에 있는거
&& : 7 위에 있는거 2개
|| : 엔터 위에 있는거 2개
논리연산자 순서 : NOT -> AND -> OR
==를 쓸때의 주의점
number 1과 string '1'을 동일한 값으로 취급
0 과 false 도 동일한 값으로 취급
undefined 와 null 도 동일한 값으로 취급
왠만하면 ===를 쓰자
두 값이 일치하지 않는지 확인 : !==
=일치하지 않아야 true 를 내놓음
그 외 > < >= <=
if문 : 특정 조건이 만족 될 때에만 특정 코드를 실행
const a = 0;
if (a + 1 === 2) {
console.log('a + 1 이 2 입니다.');
}
if else 문 : 만족하지 않을 때 1개 더 구현
if-else if문 : 더더더 많이 구현
const a = 10;
if (a === 5) {
console.log('5입니다!');
} else if (a === 10) {
console.log('10입니다!');
} else {
console.log('5도 아니고 10도 아닙니다.');
}
switch/case문
const device = 'iphone';
switch (device) {
case 'iphone':
console.log('아이폰!');
break;
case 'ipad':
console.log('아이패드!');
break;
case 'galaxy note':
console.log('갤럭시 노트!');
break;
default:
console.log('모르겠네요..');
}
if문 걸기 애매한 케이스일때 쓰는걸까...
브레이크를 걸지 않으면 계속 돌기 때문에 꼭 걸어줘야함
여러 작업을 한 블록에 묶어주는거
함수를 만들때는 function 키워드를 사용하며, 옆에 ()는 함수에서 어떤 값을 받아올지 정해주는데 이를 파라미터(매개변수)라고 부름
중괄호로 묶어주면 되고
return을 하면 그 함수는 끝남
function add(a, b) {
return a + b;
console.log('호출이 되지 않는 코드!');
}
콘솔로그는 찍히지 않는다.
함수 내에 템플릿 리터럴이 유용하게 쓰임
리액트 내에서는 완전체 함수를 쓰지 못하기 때문에 화살표함수 문법을 사용해야 한다. 애로우펑션이다.
const add = (a, b) => {
return a + b;
};
선언 = 이름 (파라미터, 파라미터) => {
return a + b;
}
function 키워드 대신에 => 문자를 사용해서 함수를 구현, 화살표의 좌측에는 파라미터, 화살표의 우측에는 코드 블록을 넣는다. 한눈에 잘 안들어오는게 단점
바로 리턴되는 한줄짜리 함수라면
const add = (a, b) => a + b;
형태로 더 축약도 가능하다.
변수(let), 상수(const) 사용시 한 이름에 여러 종류의 값을 선언할 수 있다, 이를 객체라고 함
= 뒤에 {} 중괄호를 넣고 키 : 밸류의 형태로 데이터를 차곡차곡 쌓는다.
const captainAmerica = {
name: '스티븐 로저스',
actor: '크리스 에반스',
alias: '캡틴 아메리카'
};
선언된 객체는 파라미터로 받아올 수 있다.
(템플릿 리터럴과 함수표현식을 쓰면 좋다.)
function print(hero) {
const text = `${hero.alias}(${hero.name})
역할을 맡은 배우는 ${
hero.actor
} 입니다.`;
console.log(text);
}
이렇게 하고 print(captainAmerica) 이렇게 하면 캡틴의 정보가 담긴 문장이 나오는 것이다!
객체 비구조화 할당
객체에서 값을 추출해서 새로운 상수로 선언해주면 파라미터로 불러온 데이터값과 매치해서 코드 길이를 줄일 수 있다.
파라미터에서 객체 비구조화 할당
()괄호 내부에서 새로운 객체를 선언해버림.
파라미터 이름을 지을 필요가 없어진다!
객체 안에 함수 넣기
객체 내부에 함수를 만들면 this 를 사용해서 같은 블록 내의 값들을 자유롭게 쓸 수 있다.
(화살표함수와 같은 축약형은 사용불가능 - this가 가리키는 대상이 불명확해져서 그럼)
보안용 함수(배우자) https://mygumi.tistory.com/161
https://humahumahuma.tistory.com/68
여러개의 항목이 들어있는 리스트
단일 항목 배열도 있고
객체 배열도 있다!
배열의 항목을 조회하고 싶을때는 []대괄호를 쓴다!
0부터 시작
배열 내장함수를 유용하게 사용하자