dash-case(kebab-case): 단어 사이사이에 dash(-)를 넣음 → HTML, CSS 주로 사용
snake_case: 단어 사이에 _를 넣음 → HTML, CSS 주로 사용
camelCase: 첫단어는 소문자로 시작하고 그 다음에 오는 단어는 첫문자가 대문자로 시작 → JS 사용(JS에서는 주로 camelCase 사용)
PascalCase: 첫단어도 대문자로 시작하고 다음 단어도 대문자로 시작 → JS 사용
let fruits = ["Apple", "Banana", "Cherry"];
// 배열이 있으면 0부터 시작
console.log(fruits[0]); // Apple
console.log(fruits[1]); // Banana
console.log(fruits[2]); // Cherry
// 요일은 0은 일요일을 의미 -> 0 부터 시작
console.log(new Date("2021-01-31").getDay()); // 0, 일요일
// 주석 내용
혹은 /* 주석 내용 */
/**
* 메모1
* 메모2
* 메모3
*/
let myName = "HELLO"; // 큰따옴표 사용
let email = "abc@gmail.com"; // 작음따옴표 사용
let hello = `Hello ${myName}`; // 백틱 사용(보간법) -> 문자열 사이에 다른 데이터 끼워 넣을 때
let number = 123;
let opacity = 1.57;
let checked = true;
let isShow = false;
console.log(checked); // true
console.log(isShow); // false
let undef;
let obj = { abc: 123 };
console.log(undef); // undefined
console.log(obj.abc); // 123
console.log(obj.xyz); // undefined
let empty = null;
console.log(empty); // null
let user = {
// Key: Value,
name: "Lala",
age: 85,
isValid: true,
};
console.log(user.name); //Lala
console.log(user.age); // 85
console.log(user.isValid); // true
let fruitss = ["Apple", "Banana", "Cherry"];
console.log(fruitss[0]); // Apple
console.log(fruitss[1]); // Banana
console.log(fruitss[2]); // Cherry
let c = 12;
console.log(c); // 12
c = 999;
console.log(c); // 999
let d = 12;
console.log(c); // 12
d = 999;
console.log(c); // TypeError
let this = 'Hello'; // SyntasError
// 함수 선언
function helloFunc() {
// 실행 코드
console.log(1234);
}
// 함수 호출
helloFunc(); // 1234
function returnFunc() {
return 123;
}
let a = returnFunc();
console.log(a); // 123
// 함수 선언!
function sum(a, b) {
// a와 b는 매개변수(파라미터)
return a + b;
}
// 재사용
let b = sum(1, 2); // 1과 2 는 인수(Arguments)
let c = sum(7, 12);
console.log(a, b); // 3, 19
function hello() {
console.log("Hello");
}
let world = function () {
console.log("World");
};
hello(); // Hello
world(); // World
const heropy = {
name: "LALA",
age: 85,
**// 메소드(Method)
getName: function () {
return this.name;
},**
};
const hisName = heropy.getName();
console.log(hisName); // LALA
let isShow = true;
let checked = false;
if (isShow) {
console.log("Show"); // Show
}
if (checked) {
console.log("Checked"); // 실행 안됨
}
let isShow = true;
if (isShow) {
console.log("Show!");
} else {
console.log("Hide");
}
// Show!
<script>
태그 작성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div class="box">Box</div>
<script src="./main.js"></script>
</body>
</html>
해결법2: head 태그 안에 defer
속성 추가 → HTML 코드를 다 읽고 js파일을 읽음
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script defer src="./main.js"></script>
<title>Document</title>
</head>
<body>
<div class="box">Box</div>
</body>
</html>
```
HTML 요소(Element) 1개 검색/찾기 → 먼저 찾아진 요소 반환
let boxEl = document.querySelector(".box");
addEventListener();
// 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");
let isContains = boxEl.classList.contains("active");
console.log(isContains); // true
boxEl.classList.remove("active");
isContains = boxEl.classList.contains("active");
console.log(isContains); // false
// 요소의 클래스 정보 객체 활용 → ddEventListener 사용
boxEl.addEventListener("click", function () {
console.log("Click");
boxEl.classList.add("active");
console.log(boxEl.classList.contains("actvie"));
boxEl.classList.remove("active");
});
HTML 요소(Element) 모두 검색/찾기
const boxEls = document.querySelectorAll(".box");
// HTML 요소(Element) 모두 검색/찾기
const boxEls = document.querySelectorAll(".box");
console.log(boxEls);
// 찾은 요소들 반복해서 함수 실행
// 익명 함수를 인수로 추가
boxEls.forEach(function () {});
// 첫 번재 매개변수(boxEl): 반복 중인 요소
// 두 번재 매개변수(index): 반복 중인 번호
boxEls.forEach(function (boxEl, index) {});
// 출력
**boxEls.forEach(function (boxEl, index) {
boxEl.classList.add(`order-${index + 1}`);
console.log(index, boxEl);
});**
값을 얻고(Getter), 지정(Setter)하는 용도 → textContent
const boxEl = document.querySelector(".box");
// Getter, 값을 얻는 용도
console.log(boxEl.textContent); // Box
// Setter, 값을 지정하는 용도
boxEl.textContent = "Hello";
console.log(boxEl.textContent); // Hello
js 명령들을 .(온점)으로 한꺼번에 작성
const a = "Hello";
const b = a.split("").reverse().join(""); // 메소드 체이닝
console.log(a); // Hello
console.log(b); // olleH
split
: 문자를 인수 기준으로 쪼개서 배열로 반환reverse
: 배열 뒤집기join
: 배열을 인수 기준으로 문자로 병합해 반환