함수
파라미터 : 선언
아규먼트 : 실행
콜백함수
function cal(a, b){
return a(10, 10) + b(10, 10);
}
cal((a, b) => a + b, (a, b) => a * b);
화살표함수
function 제곱(x) {
return x**2
}
// 함수표현식, 호이스팅 X
let 제곱 = x => x**2;
function f(a, b) {
let z = 10
let result = z + a + b
return result
}
// 함수표현식, 호이스팅 X
let f = (a, b) => {
let z = 10
let result = z + a + b
return result
};
// 기명 함수
let aa = function sum(x, y) {
return x + y
}
// 익명 함수인것 같지만 바뀜
let bb = function(x, y) {
return x + y
}
// ES5에서는 빈 문자열이었는데 ES6에서 name 값을 가지는 것으로 바뀌었습니다.
let cc = (x, y) => x + y;
console.dir(function (x, y) {return x + y;})
class Human {
constructor() {}
// 인스턴스 메서드, 인스턴스 프로퍼티 메서드, 프로토타입 메서드
a() {}
// 클래스 메서드, 클래스 프로퍼티 메서드, 정적 메서드
static b() {}
}
hojun = new Human('호준')
typeof hojun // object
typeof Human // function
try {
// 코드
} catch(e) {
// 코드
} finally {
// 코드
}
//throw new Error(message);
//throw new SyntaxError(message);
//throw new ReferenceError(message);
function f(...x){
return x;
}
f(1, 2, 3, 4, 5)
// 0 문자 제거
let s = '010100020201020304812123';
s.replace(/[^1-9]/g,"")
'11221234812123'
// 앞 뒤 공백 제거(캐릭터 클래스 `\s`사용)
s = ' 010100020201020304812123 '
s.replace(/^\s+|\s+$/g,'')
'010100020201020304812123'
// 문자열 내 공백 제거
s = ' 01010002020 102030 4812123 ';
s.replace(/\s/g,'')
'010100020201020304812123'
// 개행 제거
s = `
a
b
c
d
`
'\na\nb\nc\nd\n'
s.replace(/\n/g,'')
'abcd'
let x = /[a-zA-Z0-9]/g
let a = 0b1001 // a == 9
let b = 0o1001 // b == 513
let c = 0x1001 // c == 4097
예제
for (let [[i, j], k] of [[[1, 2], 2], [[1, 2], 4]]) {
console.log(i, j);
}
let x = 10, y = 20
[x, y] = [y, x]
let {a, b} = {b:'hello', a:'world'}
다른 언어에서는 언패킹이라고 부리기도 합니다.
js는 일을 처리할 수 있는 thread가 1개, 싱글쓰레드라고 함.
하지만 모든 일을 여러명이 처리할 수 없다면 항상 기다려야 하는 문제가 생길 수도 있고, 무한대기에 빠질 수도 있음.
Promise
// 해당하는 Id를 가진 요소에 접근하기
document.getElementById()
// 해당하는 모든 요소에 접근하기
document.getElementsByTagName();
// 해당하는 클래스를 가진 모든 요소에 접근하기
document.getElementsByClassName();
// css 선택자로 단일 요소에 접근하기
document.querySelector("selector");
// css 선택자로 여러 요소에 접근하기
document.querySelectorAll("selector");
// target 요소를 생성합니다.
document.createElement(target);
// target 텍스트를 생성합니다.
document.createTextNode(target);
// target 요소를 element의 자식으로 위치합니다.
element.appendChild(target);
// element의 target 자식 요소를 제거합니다.
element.removeChild(target);