[SOPT] # 1st Seminar - JavaScript

✨New Wisdom✨·2020년 10월 12일
1

📗 Nodejs 📗

목록 보기
16/20
post-thumbnail

About JavaScript

특징

  • 웹 페이지를 위한 언어
  • 스크립트 언어 : 코드를 한 줄씩 번역하고 실행
  • 타입을 명시하지 않는다. (int, float 등...)
  • 프로토타입 기반의 객체 지향 언어

JS 역사

EcmaScript ?
Ecma International 이라는 비 영리 단체에서 만든 표준화된 프로그래밍 언어.
크롬 등장 전에는 Internet Explorer가 웹브라우저의 90% 이상을 차지해
EcmaScript 표준을 무시하고 마음대로 JS 생태계를 파괴했었지만,
구글 크롬 등장으로 안정화가 되었다.
2015년 이후에 문법 변화가 생기면서 ES6가 탄생하였다➿

🚩 변수 선언법

var

  • 범위 : Function Scope
  • 변수 재선언 : ⭕️
  • 변수 값 재할당 : ❌
  • 초기화 값 필요 : ❌

let

  • 범위 : Block Scope
  • 변수 재선언 :
  • 변수 값 재할당 : ⭕️
  • 초기화 값 필요 :

const

  • 범위 : Block Scope
  • 변수 재선언 : ❌
  • 변수 값 재할당 : ❌
  • 초기화 값 필요 : ⭕️ (초기화 시 값 안넣으면 오류)

🚩 범위

Fucntion Scope
유효 범위가 함수 범위 내여서 그 밖으로 나가지 못한다.
전역 함수 외부에서 생성한 변수는 모두 global 변수.

Block Scope
블록의 범위는 중괄호 {} 사이.
Function Scope 대신 사용해 Hoisting과 같은 문제 해결 가능.

🤔 Hoisting ?
JS는 초기화가 아닌 선언만 함수의 최상위로 끌어 올리는 것을 뜻함.
선언과 할당을 분리시켜 변수 선언부를 유효범위 내 위로 끌어 올린다.
-> let, const를 사용해 해결하자 ‼️

🚩 데이터 타입

자바스크립트에서 사용하는 데이터타입은 두가지이다.

원시 타입

  • Number, String, Boolean, Null, Undefined, Symbol
    객체 타입
  • Object

🤔 Null vs Undefined ?

  • Null
    : 다른 언어에서는 존재하지 않는 객체에 대한 참조, null pointer를 나타낼 때 사용하지만,
    JS에서는 존재하지 않는 값, 비어있는 값을 나타내는데 사용한다.
  • Undefined
    : 값이 할당되지 않은 상태, 변수 선언했지만 할당하지 않았을 때

🚩 Object

Property (key, value로 구성된)와 Method (property가 함수일 경우)의 집합.
{} 태그로 감싸진 형태.
원시타입 제외한 나머지 값들은 모두 객체. (함수, 배열, 정규 표현식도 다!)
Array, Json, Function도 객체.

Function

함수 선언식

function add(x, y ){
	return  x + y;
}
  • Hoisting 영향 ⭕️

함수 표현식

var add = function(x, y){
	return x + y;
}
var add = (x, y) => {
	return x + y;
}
  • Hoisting 영향 ❌

Array Function (화살표 함수)

var add = (x, y) => x + y;
var square = x => x * x;
var person = (name, age) => ({name: name, age: age});
  • 로직이 한줄이면 return 생략 가능
  • 매개변수가 하나일 때 매개변수의 소괄호 생략 가능
profile
🚛 블로그 이사합니다 https://newwisdom.tistory.com/

0개의 댓글