
자바스크립트에서 가장 큰 목적은 무엇이였을까 ?html에서 구조를 , CSS에서 모양을 만들었다면,자바스크립트를 통해 동적인 액션을 구현한다는 것이다. 이 동적인 액션들이 내가 원할때 실행되어야하고 , 원하지 않을때 실행되지 말아야하며연산을 하는 도중에 값이 도출될 수 없듯 일에 순서와 절차를 만들어 줘야한다. 하지만 자바스크립트는 현재 어떻게 움직이고 있을까 ?상단부터 하단으로 순차적으로 읽어 들어가지만,여러가지의 함수나 실행이 어느 한 로드가 틀어지게 된다면 실행이 얽힐 수 있을것이다. 예를들어 여러개의 setTimeout 함수를 실행시킬때전부다 1초의 시간을 준다면 어떻게 됬을까 ?로드에 맞춰 실행 시작하면서 , 모든 함수가 로드 후 1초후에 실행이 마쳤다.그 말은 즉, 함수의 실행 시점이 같다는 ..

구조분해 할당이란 구조분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담는 표현식이다. 객체 구조분해 할당 let sandwich = { bread:"더치 크런치", meat:"참치", cheese:"스위스", toppings:["샐러리","토마토","머스터드"] }sandwich 라는 객체가 있다.이 속성값을 변수에 저장해보자. let { bread, meat } = sandwich; console.log(`** before => ${bread}, ${meat}`);let {bread 와 meat} 는 변수 bread 와 meat 이다.속성과 변수명이 같다면 , 그에 속성값을 할당 받을 수 있다. 추후에 ..
this ?자바스크립트에서는 this 가 어디에서 사용되느냐에 따라 달라진다.사용처가 어디인지 그 위치에 따라 this 가 가르키는 것이 달라지기 때문에 유의해서 사용해야한다. 일반 함수에서의 this 는 주체가 되는 객체를 가르키지만,화살표 함수의 this 는 window 객체를 가르키게 되기 때문에 ,undefined 를 반환한다.화살표 함수 화살표 기호를 활용하여 간단하게 함수를 정의할 수 있으며 ,이름이 없고 this를 활용할 수 없다.메서드에서 화살표 함수가 지원되지 않았지만 , ES6부터 지원이 되게 되었다. -매개변수가 없는 경우 : 괄호 생략 불가능let foo = () => console.log('bar'); // let foo = function() { console.log('..

비정상적 동작에 대한 처리.foo(); 라고 있지도 않는 함수를 실행시켰다면 , 함수 실행 구문전까지 실행되다가 멈춘것이 확인이가능하다. 자연스럽게 실행의 흐름을 만들기 위해서try ....catch 의 구문을 사용한다.try 안의 반복문과 반복문안의 try 를 구분해보자. -반복문 안의 try let num = [0, 25, 100, 99, 111]; // => 기본구문 for (let a of num) { try { if (a == 0 || a > 100) { throw new Error(`숫자가 0이거나, 100보다 큽니다.`); }else { console.log(`${a}*${a} = ${a*a}`); } ..

Set 이란 ?value 값을 저장하고 , 중복을 허용하지 않는 컬렉션이다.중복일 경우 중복값은 인지하지 않는 특징을 지녔다.대소문자를 구분해 대문자 소문자는 다른 값으로 인지한다.값의 순서가 인지되지 않는다. 대체 Set , 왜사용하는걸까 ?한마디로 Set 는 , 순서가 없고 , 중복되지 않는 데이터의 집합이라고 할 수 있다. 배열과의 차이점을 인식하여야 하는데,배열은 데이터를 순서 있게 저장하고 , 순서를 알고 있기에 인덱스를 통한 접근이 가능하다.값이 중복되더라도 배열은 인덱스가 다르기 때문에 저장이 가능하다. Set 객체의 메서드요소 추가: Set.add(value)요소 일부 삭제: Set.delete(value)요소 존재 확인: Set.has(value)요소 갯수 확인: Set.size요소 전체..

자바스크립트의 객체는 여러형태의 데이터를 손쉽게 묶을 수 있는 편리한 자료구조이다.ECMA 6에서 추가된 맵의 자료구조형태가 추가되었는데,ECMA6 에서 변수 var 에서 let 과 const가 추가된 배경과 비슷하다.객체에서는 문자열 또는 심볼의 프로퍼티를 사용할 수 있었는데,맵객체에서는 함수나 객체를 포함하고 , 숫자형태를 제외한 모든 형태의 프로퍼티가 가능하다.맵은 키가 있는 데이터를 저장한다는 점에서 객체와 유사하지만 다양한 형태의 프로퍼티가 가능하다는 점이 차이가 크다. 객체처럼 . 이나 [] 로 접근할 필요 없이 메소드로만으로도 프로퍼티를 수정하거나 조회할 수 있다.객체는 속성값이 얼마나 있는지 조회할 수 없으나 Map은 속성의 갯수를 파악할 수 있다(Map.size)객체는 속성이 같을 떄 충..