참: truthy
거짓: falsy
불린데이터 true
, false
이랑은 다르다. 참, 거짓이라고 생각하면 된다.
truthy 는 사실 무한대에 가깝고 falsy 만 외우면 된다.
if (false)
if (null)
if (undefined)
if (0)
if (-0)
if (NaN)
if (0n)
if ('') // if (' ')는 공백문자가 있으니 문자라고 여겨져서 truthy
변수는 데이터를 담아두는 그릇, 메모리라는 주소를 들고있음
var
const
let
-유효범위 : 블록 레벨
-재할당: X
-중복선언: X
-호이스팅: X
-전역등록: X
-유효범위 : 블록 레벨
-재할당: O
-중복선언: X
-호이스팅: X
-전역등록: X
-유효범위 : 함수 레벨
-재할당: O
-중복선언: O
-호이스팅: O
-전역등록: O
함수는 명령을 감싸는 역할. 감싼 명령을 여러 지점에서 쓰기 위해 ‘재사용' 용도로 사용. 그래서 이름이 필요함. 함수에는 입구로 데이터 받고, 출구로 반환 할 수 있음(retrun) 반환문 없는 함수는 기본 값을 반환한다.
new 키워드로 호출하는 생성자의 경우, 기본 반환 값은 함수의 this가 가리키는 값이다. 그 외의 모든 함수의 경우, 기본 반환 값은 undefined이다.
JavaScript에서 모든 함수는 Function 객체이다.
function abc() {}
const abc = function () {}
함수를 정의할 때 사용되는 변수를 의미
함수가 호출될 때 매개변수에 실제로 담기는 값을 의미
function sum (a, b) { // a, b는 매개변수, 여기서 sum은 호출하기전에 함수라는 그냥 데이터다. 함수를 소괄호 열고닫아서 호출하기 전까지는 그냥 하나의 데이터다.(중요)
console.log(a + b)
}
console.log(sum)
function callFn(callback) {
callback(2, 4)
}
callFn(sum) // 이 인수를 콜백에 매개변수로 줌
// 콜백은 sum이라는 하나의 데이터이다. 그래서 2는 a에 들어가고 b에들어가서 콘솔창에는 6이 나온다.
예시
function sum(yejin, yang) {
return yejin + yang //표현식
}
const res = sum(2, 4)
console.log(res)
함수에서 리턴이라는 키워드를 사용하지 않으면 undefiend가 튀어나온다.
함수에서 undefiend가반환되면 그 함수는 리턴 키워드로 어떤 특정데이터를 반환하고 있지 않구나 라고 생각하면 된다.
function sum() {
return 456
console.log(123)
}
console.log(sum())
함수 안에 리턴 키워드가 있으면 그 이하 명령은 실행하지않는다 그래서 콘솔에 456만 출력 된다.
즉 리턴 키워드를 사용하면 반환하고 바로 함수 종료!
function sum(a = 1, b = 3) {
return a + b
}
Sum이라는 함수를 만들었는데, 동료 개발자나 미래의 본인이나, 만들어놓고 사용법을 잊어버려서 의도치않는 값이 튀어나올 수 있음 그래서 사용할 수 있는것이 default value. 기본값이다.
b라는 매개변수에 기본값 지정하여 (아무 값도 들어오지 않아서 undefined 된다면) 숫자 3을 쓰겠다.
1이랑 3 기본값을 쓰더라도 정상적인 데이터가 인수가 들어온다면 1과 3은 사용되지 않는다.