표기법은 크게 4가지로 되어있다.
dash를 사용한 표기법
ex) the-blue-fish-looks-like-marlin
_(under score, under bar)를 사용한 표기법
ex) the_blue_fish_looks_like_marlin
낙타 표기법이라고도 하며 단어 시작은 소문자, 그 다음으로 오는 단어는 첫 글자를 대문자로 작성하여 사용한다.
주로 JavaScript에서 사용하는 표기법
ex) theBlueFishLooksLikeMarlin
camelCase와 유사하며 단어 시작부터 대문자로 작성하여 사용하는 표기법
ex) TheBlueFishLooksLikeMarlin
0 기반 번호 매기기, 특수한 경우를 제외하고 숫자를 셀 때 "0"부터 시작한다.
let fruits - ['Apple', 'Banana','Cherry'];
console.log(fruits[0]); // 'Apple', 0
console.log(fruits[1]); // 'Banana', 1
console.log(fruits[2]); // Cherry', 2
console.log(new Date('2022-04-09').getDay()); // 6, 토요일
console.log(new Date('2022-04-10').getDay()); // 0, 일요일
console.log(new Date('2022-04-11').getDay()); // 1, 월요일
1. // 한 줄 메모
2. /* 한 줄 메모 */
3.
/**
* 여러줄
* 메모1
* 메모2
*/
데이터의 종류에는 String, Number, Boolean, Undefined, Null, Object, Array가 있다.
따옴표(큰, 작은, 백틱)를 사용해서 묶어낼 수 있다.
let myName = "HUN";
let email = 'toffg6450@naver.com';
let hello = `Hello ${myName}?!`
console.log('myName : ', myName); // HUN
console.log('email : ', email); // toffg6450@naver.com
console.log('hello : ', hello); // Hello HUN?!
정수 및 부동소수점 숫자를 나타낸다.
let number = 123;
let opacity = 1.57;
console.log('number : ', number); // 123
console.log('opacity : ', opacity); // 1.57
true, false 두 가지 값밖에 없는 논리 데이터이다.
let checked = true;
let isShow = false;
console.log('checked : ', checked); // true
console.log('isShow : ', isShow); // false
값이 할당되지 않은 상태를 나타낸다.
let undef;
let obj = { abc:123 };
console.log('undef : ', undef) // undefined
console.log('obj.abc : ', obj.abc) // 123
console.log('obj.xyz : ', obj.xyz) /// undefined
어떤 값이 의도적으로 비어있음을 의미한다.
let empty = null;
console.log('empty : ',empty); // null
여러 데이터를 Key:value 형태로 저장한다. { Key:value }
let user = {
// Key: value,
name: 'Hun',
age: 27,
isValid: true
};
console.log('user.name : ', user.name); // Hun
console.log('user.age : ', user.age); // 27
console.log('user.isValid : ', user.isValid); // true
여러 데이터를 순차적으로 저장한다. ['data1', 'data2', 'data3']
let fruits = ['Apple', 'Banana','Cherry'];
console.log('fruits[0] : ', fruits[0]); // 'Apple', 0
console.log('fruits[1] : ', fruits[1]); // 'Banana', 1
console.log('fruits[2] : ', fruits[2]); // Cherry', 2
변수란 데이터를 저장하고 참조(사용)하는 데이터의 이름
var(권장사항x), let, const 총 3개의 종류가 있다.
// 재사용이 가능!
// 변수 선언!
let a = 2;
let b = 5;
console.log(a + b); // 7
console.log(a - b); // -3
console.log(a * b); // 10
console.log(a / b); // 0.4
// 값(데이터)의 재할당 가능!
let a1 = 12;
console.log(a1); // 12
a1 = 999;
console.log(a1); /// 999
// 값(데이터)의 재할당 불가!
const a2 = 12;
console.log(a2); //12
a2 = 999;
console.log(a2); // TypeError: Assginment to constant variable.
특별한 의미를 가지고 있어, 변수나 함수 이름 등으로 사용할 수 없는 단어(Reserved Word)이다.
// 예약어 예시
let this = `Hello!`; // SyntaxError
let if = 123; // SyntaxError
let break = true; // SyntaxError
함수란 특정 동작(기능)을 수행하는 일부 코드의 집합(부분)
// 함수 선언
function helloFunc() {
// 실행 코드
console.log(1234);
}
// 함수 호출(실행)
helloFunc(); // 1234;
// 함수 안의 특정 값을 반환
function returnFunc() {
return 123;
}
let a = returnFunc();
console.log(a); // 123
// 함수 선언!
function sum(a, b) { // a와 b는 매개변수(Parameters)
return a + b;
}
// 재사용!
let a1 = sum(1, 2); // 1과 2는 인수(Arguments)
let b1 = sum(7, 12);
let c1 = sum(2, 4);
console.log(a1, b1, c1); // 3, 19, 6
// 기명(이름이 있는)함수
// 함수 선언!
function hello() {
console.log('Hello~');
}
// 기명(이름이 있는)함수
// 함수 표현!
let world = function () {
console.log('Wolrd~');
}
// 함수 호출~
hello();
world();
// 객체 데이터
const Hun = {
name: 'Hun',
age: 27,
// 메소드(Method) : 속성부분에 함수가 할당되어 있는 경우
getName: function () { // 함수의 표현
return this.name;
}
};
const hisName = Hun.getName();
console.log(hisName); // Hun
console.log(Hun.getName()); // Hun
조건문이란 조건의 결과(truthly, falsy)에 따라 다른 코드를 실행하는 구문이다.
let isShow = true;
let checked = false;
if(isShow) { // (조건), ( ) 안의 조건이 참이면 코드를 실행한다.
console.log('Show!'); // Show!
}
if (checked) { // ( )안의 조건이 거짓이므로 코드를 실행하지 않는다.
console.log('Checked');
}
// else
if(isShow) { // 만약 isShow가 false이면 else 부분의 코드가 출력된다.
console.log('Show!'); // Show!
} else {
console.log('Hide?');
}
DOM API(Document Object Model, Application Programming Interface) : JavaScript에서 HTML을 제어하는 여러가지 명령들
Document : HTML에 들어있는
Object Model : div, span, input 요소
Application Programming Interface : 웹사이트가 동작하기 위해서 입력하는 프로그래밍 명령
<!--index.html-->
<div class="box">Box!!</div>
1 ~ 4번의 index.html이며 1 ~ 4번 코드들은 전부 이어지는 내용입니다.
const boxEl = document.querySelector('.box');
console.log(boxEl);
// HTML 요소에 적용할 수 있는 메소드!
boxEl.addEventListener();
// 인수(Arguments)를 추가 가능!
boxEl.addEventListener(1,2);
// 1 - 이벤트(Event, 상황)
boxEl.addEventListener('click', 2);
// 2 - 핸들러(Handler, 실행할 함수)
boxEl.addEventListener('click', function() {
console.log('Click~!');
})
// 요소의 클래스 정보 객체를 활용!
boxEl.classList.add('active'); // active class가 추가됨
let isContains = boxEl.classList.contains('active');
console.log(isContains); // true
boxEl.classList.remove('active'); // active class가 삭제됨
isContains = boxEl.classList.contains('active');
console.log(isContains); // false
// Getter, 값을 얻는 용도
console.log(boxEl.textContent); // Box!!
// Setter, 값을 지정하는 용도
boxEl.textContent = 'HUN!';
console.log(boxEl.textContent); // Hun!
<!--index.html-->
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
5, 6번의 index.html이며 5, 6번 코드들은 전부 이어지는 내용입니다.
const boxEls = document.querySelectorAll('.box');
console.log(boxEls);
boxEls.forEach(function () {});
// 첫 번째 매개변수(boxEls) : 반복 중인 요소.
// 두 번째 매개변수(index) : 반복 중인 번호
boxEls.forEach(function (boxEl, index) {});
// 출력!
boxEls.forEach(function (boxEl, index) {
boxEl.classList.add(`order-${index + 1}`);
console.log(index, boxEl);
});
// ---------------------example-----------------------
const boxEls = document.querySelectorAll('.box');
boxEls.forEach(function (boxEl, index) {
boxEl.classList.add(`order-${index + 1}`);
console.log(index, boxEl);
});
메소드 체이닝은 JavaScript메소드를 체인처럼 연결해서 사용하는 것이다.
const a = 'Hello~'
// split: 문자를 인수 기준으로 쪼개서 배열로 반환.
// reverse: 배열을 뒤집기
// join: 배열을 인수 기준으로 문자로 병합해 반환.
const b = a.split('').reverse().join(''); // 메소드 체이닝...
console.log(a); // Hello~
console.log(b); // ~olleH