function add(x, y) {
return x + y;
}
console.log(add(5, 10)); // 15
const add = function(x, y) {
return x + y;
}
console.log(add(5, 10)); // 15
// 함수 선언
function add(a, b) {
return a + b;
}
// 함수 표현식
const add2 = function (a, b) {
return a + b;
}
// 화살표 함수
const add3 = (a, b) => {
return a + b;
}
// 화살표 함수, 실행할 코드가 한 줄일 때는 중괄호 생략 가능
const add4 = (a, b) => a + b;
호이스팅(hoisting)이란?
코드 실행 전에 자바스크립트 엔진이 변수와 함수의 선언을 메모리로 끌어올리는 과정함수 선언식
sayHi(); // 호이스팅 가능 function sayHi() { console.log("안녕!"); }함수 표현식
sayBye(); // 에러 발생, 호이스팅 불가능 var sayBye = function() { console.log("잘 가~"); };
가장 기본적인 객체 생성 방법은 객체 리터럴을 사용하는 것이다.
let person = {
name: "John",
age: 30,
greet: function() {
console.log("Hello, " + this.name);
}
};
프로퍼티 : 객체에 대한 정보
메서드 : 객체가 할 수 있는 동작 정의
let person = {
name: "Alice",
age: 25
};
console.log(person.name); // Alice
console.log(person.age); // 25
// 메서드 정의
let person = {
name: "Alice",
age: 25,
greet: function() {
console.log("Hello, " + this.name);
}
};
// 메서드 호출
person.greet(); // Hello, Alice
// 배열 생성
let numbers = [1, 2, 3, 4, 5];
// push: 배열의 끝에 요소 추가
numbers.push(6);
console.log(numbers); // [1, 2, 3, 4, 5, 6]
// pop: 배열의 마지막 요소 제거
numbers.pop();
console.log(numbers); // [1, 2, 3, 4, 5]
// shift: 배열의 첫 번째 요소 제거
numbers.shift();
console.log(numbers); // [2, 3, 4, 5]
// unshift: 배열의 첫 번째 위치에 요소 추가
numbers.unshift(1);
console.log(numbers); // [1, 2, 3, 4, 5]
// forEach: 배열의 각 요소에 대해 함수를 실행
numbers.forEach(function(number) {
console.log(number); // 1, 2, 3, 4, 5
});
let students = [
{ name: "John", age: 22 },
{ name: "Jane", age: 24 },
{ name: "Mike", age: 23 }
];
let person = {
name: "John",
hobbies: ["Reading", "Traveling", "Swimming"]
};
문자열 내에서 특정 문자나 문자열의 첫 등장 위치 인덱스를 반환 (없으면 -1 반환)
"hello world".indexOf("o"); // 4
"hello world".indexOf("z"); // -1
가장 마지막에 등장하는 위치 인덱스 반환
"hello world".lastIndexOf("o"); // 7
포함 여부를 boolean(true/false) 값으로 반환
"hello world".includes("world"); // true
특정 문자열로 시작/끝나는지 확인
"hello".startsWith("he"); // true
"hello".endsWith("lo"); // true
"abcdef".slice(1, 4); // "bcd"
"abcdef".slice(-3); // "def"
slice()와 유사하나, 음수 인덱스를 0으로 처리
"abcdef".substring(1, 4); // "bcd"
"abcdef".substring(-2, 4); // "abcd"
시작 위치부터 지정한 길이만큼 추출 (ES6 이후 비추천)
"abcdef".substr(2, 3); // "cde"
"banana".replace("a", "o"); // "bonana"
"banana".replaceAll("a", "o"); // "bonono"
대소문자 변환
"Hello".toUpperCase(); // "HELLO"
"Hello".toLowerCase(); // "hello"
문자열 양쪽 또는 한쪽 끝의 공백 문자 제거
" hello ".trim(); // "hello"
" hello ".trimStart(); // "hello "
" hello ".trimEnd(); // " hello"
문자열을 구분자 기준으로 나눠 배열로 반환
"apple,banana,kiwi".split(","); // ["apple", "banana", "kiwi"]
문자열을 이어붙임. + 연산자를 더 많이 사용
"hello".concat(" ", "world"); // "hello world"
"hello" + " world"; // "hello world"
해당 위치의 문자 또는 유니코드 값 반환
"abc".charAt(1); // "b"
"abc".charCodeAt(1); // 98 (유니코드)
문자열을 여러 번 반복
"ha".repeat(3); // "hahaha"
let name = "Alice";
let greeting = `Hello, ${name}!`;
console.log(greeting); // "Hello, Alice!"