프로그래밍/JavaScript 16

[모딥다] JS (3) - 스코프

1. 스코프: 유효범위라고도 하며, 모든 식별자(변수 이름, 함수 이름, 클래스 이름)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되는 것을 스코프라고 한다. : 식별자가 유효한 범위를 말함 2. 식별자 결정: 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 하는 것. 스코프 : 유효범위라고도 하며, 모든 식별자(변수 이름, 함수 이름, 클래스 이름)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되는 것을 스코프라고 한다. : 식별자가 유효한 범위를 말함   2. 식별자 결정: 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 하는 것var x = 'global'..

[모딥다] JS (2) - 함수

1. 함수란? : 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것: 매개변수 - 함수 내부로 입력을 전달 받는 변수: 인수 - 입력: 반환값 - 출력: 함수 정의를 통해 생성: 함수는 일급객체임 (값의 성질을 갖는 객체를 일급객체라고 함)function addNumber(x,y) { return x + y;} 2. 함수 리터럴: 함수는 객체 타입의 값이다 따라서 함수도 함수 리터럴로 생성할 수 있다. : 함수 리터럴은 function 키워드, 함수 이름, 매개변수 목록, 함수 몸체로 구성된다.var f = function add(x,y) { return x + y; }; * 함수 이름은 생략 가능, 이름이 없는 함수를 무명/ 익명 함수라 함* 매개변수 목록은 ..

[모딥다] JS (1) - 객체 리터럴

1. 객체란?: JS는 객체 기반의 프로그래밍 언어며 거의 모든 겂이 객체다. : 변경 불가능한 원시 값과 달리 객체는 변경 가능한 값이다.: 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.: 이미 존재하는 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티가 먼저 선언한 프로퍼티를 덮어쓴다.let person = { name: "John" // 프로퍼티 키 : name , 프로퍼티 값 : "John" age: 22,} :  참고로 프로퍼티 값은 JS에서 사용할 수 있는 모든 값이 될 수 있다.: 프로퍼티 값이 함수인 경우 우리는 메서드라 부른다.var counter = { num = 0, // 프로퍼티 increase : function() { ..

JavaScript에서 비동기 처리하기

1. 동기와 비동기: 동기 프로그래밍에서 작업은 차례로 실행되며 작업이 완료될 때까지 중단할 수 없음: 비동기는 임의의 순서로 또는 동시에 작업이 실행 될 수 있다.   2. JS에서 비동기처리하는 방법: 런타임에서 싱글 스레드로 동작한다.  그 말은 한 번에 하나의 작업만 처리할 수 있다는 뜻이다. : 그러나 프로미스 ,콜백 , Async Await 등의 방법을 사용하면 자바스크립트에서도 비동기 처리를 할 수 있다. 3. 콜백 : 함수의 파라미터로 함수를 전달하며, 비동기 처리가 끝났을 때 전달된 함수를 실행한다.: 가독성이 좋지 못하여 유지보수나 디버깅때 어려움이 있는 것이 특징이다. (콜백 지옥이라고도 함): 카페에가서 점원에게 커피를 주문 하고 다른 것을 하고 있으면, 커피 제조가 끝난 후에 손님..

[JS] Promise와 Callback 함수 비교

1. 비동기와 콜백 1) 콜백(Callback Function) : 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수, 함수 안에서 실행되는 함수를 말합니다. 2) 고차 함수(Higher-Order Function) : 매개변수를 통해 함수의 외부에서 콜백 함수를 전달 받은 함수 function repeat(n,f) { // 외부에서 전달 받은 f를 n만큼 반복 호출 한다. for (var i = 0; i< n; i++) { f(i); // i를 전달하면서 f를 호출 } } function callMyName(name, callback){ alert(`${name}이 불려집니다.`); callback(name); } function sayHello(name) { alert(`안녕하세요 저는 ${n..

[JS] JS 데이터 타입

이번에 CS 스터디를 진행하면서 맡은 부분과 평소 궁금했던 부분들을 적어보고자 합니다. JS part에서 중요하다 생각되는 데이터 타입을 1부에서 그리고 평소 헷갈려하던 Promise와 Callback 함수에 대해 2부에서 좀 더 깊게 공부하는 시간을 가졌습니다. 참고 자료는 JavaScript Mdn 공식 문서와 모던 자바스크립트 Deep dive를 참고 했습니다. 1. 데이터 타입 데이터 타입이란 값의 종류를 뜻하며 줄여서 타입이라고도 합니다. JavaScript는 느슨한 타입의 동적(dynamic) 언어입니다. 즉 모든 타입의 값으로 할당이 가능하다는 특징이 있습니다. 또 한편으로 자바스크립트의 모든 값은 데이터 타입을 갖는다라는 점이 특징입니다. 2. 데이터 타입의 종류 자바스크립트는 총 7개의 ..