EcmaScript ?
Ecma International 이라는 비 영리 단체에서 만든 표준화된 프로그래밍 언어.
크롬 등장 전에는 Internet Explorer가 웹브라우저의 90% 이상을 차지해
EcmaScript 표준을 무시하고 마음대로 JS 생태계를 파괴했었지만,
구글 크롬 등장으로 안정화가 되었다.
2015년 이후에 문법 변화가 생기면서 ES6가 탄생하였다➿
var
let
const
Fucntion Scope
유효 범위가 함수 범위 내여서 그 밖으로 나가지 못한다.
전역 함수 외부에서 생성한 변수는 모두 global 변수.
Block Scope
블록의 범위는 중괄호 {} 사이.
Function Scope 대신 사용해 Hoisting과 같은 문제 해결 가능.
🤔 Hoisting ?
JS는 초기화가 아닌 선언만 함수의 최상위로 끌어 올리는 것을 뜻함.
선언과 할당을 분리시켜 변수 선언부를 유효범위 내 위로 끌어 올린다.
-> let, const를 사용해 해결하자 ‼️
자바스크립트에서 사용하는 데이터타입은 두가지이다.
원시 타입
🤔 Null vs Undefined ?
Property (key, value로 구성된)와 Method (property가 함수일 경우)의 집합.
{} 태그로 감싸진 형태.
원시타입 제외한 나머지 값들은 모두 객체. (함수, 배열, 정규 표현식도 다!)
Array, Json, Function도 객체.
함수 선언식
function add(x, y ){
return x + y;
}
함수 표현식
var add = function(x, y){
return x + y;
}
var add = (x, y) => {
return x + y;
}
Array Function (화살표 함수)
var add = (x, y) => x + y;
var square = x => x * x;
var person = (name, age) => ({name: name, age: age});