반응형

JavaScript 44

[JavaScript] 함수 호출시 주의사항(선언함수 vs 익명함수), Hoisting

함수 호출 시 주의 사항 ▶ 선언적 함수와 익명 함수의 특징 선언함수 : Hoisting의 대상. 익명함수(Anontmous Function) : Hoisting의 대상이 아님. ▶ 선언적 함수의 단점 Hoisting에 의해 덮어쓰기가 됨. ※ 선언 함수 → Hoisting을 통하여 Execution Context (실행 컨택스트)를 실행한다. ※ 익명 함수 → Hoisting은 L-Value에 R-Value를 입력하는 것은 인식하지 않는다. ▶ 선언적 함수와 익명 함수의 혼합사용 1차적으로 익명 함수를 사용하면 에러가 발생한다. ES5의 var를 사용 시 에러가 발생하지 않지만 의도하지 않은 결과가 발생할 수 있다. const 사용 시 (const func1 = …) 에러 발생 ※ 1차적 익명 함수 사..

JavaScript 2022.04.12

[JavaScript] IIFE(즉시 실행 함수 표현식), strict mode(엄격 모드)

IIFE (즉시 실행 함수 표현식) "Immediately Invoked Function Expression"의 약어로 정의 되자마자 즉시 실행되는 함수다. 임시 객체를 이용하여 함수의 선언과 동시에 호출하는 기법 여러 개의 ▶ 충돌 회피 사용자 'A'와'B'가 pi를 다르게 정의하였을 때 즉시 호출로 해결할 수 있다. strict mode (엄격 모드) 문법 사용에 대한 규칙 강화. 일반적으로 즉시 호출에 use strict사용, 다른 코드 블록 간의 간섭 방지. strict mode를 사용했다고 해서 자신의 코드가 견고 해지는 것이 아니다. ▶ 형식 'use strict' ▶ 예시 엄격 모드 비사용 엄격 모드 사용 구버전의 호환성은 버려야 한다.

JavaScript 2022.04.12

[JavaScript] Arrow function Expression (화살표 함수)

화살표 함수 표현 (Arrow Function Expression) 전통적인 함수표현을 간편화한 대안이다. 전통적인 함수 표현을 간단하게 만든 sugar-code. 화살표함수는 해당 객체의 메소드가 아님. 문법적으로 틀린 표현이나 개발자들의 편의를 위해 개발된 함수. ▶ 특성 this나 super에 대한 바인딩이 없고, methods 로 사용될 수 없다. new.target키워드가 없다. 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 이용할 수 없다. 생성자(Constructor)로 사용할 수 없다. yield를 화살표 함수 내부에서 사용할 수 없다. ▶ 형식 (param1, param2, …, paramN) => { statements } (param1, par..

JavaScript 2022.04.12

[JavaScript] Callback function(콜백 함수), forEach, map, filter

Callback 함수 함수의 레퍼런스 값을 파라미터로 전달하여 호출되는 함수. 자바스크립트의 콜백함수는 엄밀한 콜백 함수는 아님. 콜백 함수의 응용 ▶ forEach() 배열의 요소의 갯수 만큼 순회한다. 초기화 하지 않은 값은 반복 하지 않는다. const arraySparse = [1,3,,7] arraySparse.forEach(function(element){ console.log(element) }) // 1 // 3 // 7 예제 ※ forEach와 callback함수로 2단 4단을 출력하시오. ▶ map() 호출한 결과를 모아 새로운 배열을 반환한다. 만약 callback함수에서 리턴을 하지 않는다면 undefined 배열 생성. 비파괴적 함수. 예제 ※ [‘홍길동, ‘세종대왕’, ‘김구‘,..

JavaScript 2022.04.12

[JavaScript] type에 따른 bubble sort(버블 소트) 예제

※ 예제 number type과 object type을 입력하여 버블소트를 구하는 함수를 가변파라미터와 일반 파라미터를 활용하여 작성하시오. → 해법 unshift, Array.isArray 의 이해 [JavaScript] unshift, Array.isArray unshift Array.prototype.unshift() 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다. 배열 형태의 객체 시작점에 주어진 값을 삽입합니다. 구문 arr.unshift([...elementN]) 예제 Array.i.. cruella-de-vil.tistory.com

JavaScript 2022.04.11

[JavaScript] 전개 연산자, Default Parameter

전개 연산자 (spread operator) 복수의 파라미터를 가진 함수에 배열을 전달하고자 할 때 사용하는 연산자. 호출시 ...배열명 방식으로 호출한다. 아래의 코드는 element가 많아 질 수 록 복잡해지는 문제가 있다. → 때문에 전개 연산자로 문제를 해결한다. 전개 연산자와 가변 파라미터의 관계 Default Parameter 파라미터를 넣지 않은 경우, 미리 설정된 기본값을 사용하는 파라미터. 과도한 Default Parameter는 가독성을 떨어뜨림. 사용 예시 버블 소트 실행하는데 오름차순을 많이 쓰는 환경에서 아래와 같이 사용한다. 구형 ES5에서의 가변 파라미터 arguments 객체를 사용하여 파라미터 리스트를 구함. arguments는 배열은 아니나 배열처럼 사용할 수 있음. 배열..

JavaScript 2022.04.11

[JavaScript] primitive type VS object type

Primitve type의 특징 종류 number string boolean undefined null Memorry allocation 형태 그대로 메모리에 올라간다. object type의 특징 object란 data의 구조를 뜻한다. run-time object로 heap area에 올라간다. variable abstraction(변수 추상화)가 불가능하며 reference(시작정보)를 참조하여 parameter로 전달하기 때문에 전달받은 함수객체를 읽거나 쓸 수 있으며 임시 변수를 만들어 간접적으로도 사용이 가능하다. object type안에는 여러가지 명령어(.length, .apply 등)가 존재한다. 종류 array function p-type을 제외한 모든 type EX) let ar = ..

JavaScript 2022.04.11

[JavaScript] unshift, Array.isArray

unshift Array.prototype.unshift() 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다. 배열 형태의 객체 시작점에 주어진 값을 삽입합니다. 구문 arr.unshift([...elementN]) 예제 Array.isArray() 메서드는 인자가 Array인지 판별합니다. 객체가 Array라면 true를 반환하고, 아니라면 false를 반환합니다. Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); // false Array.isArray('foobar'); // false Array.isArray(undefined); // false // 모두 true 반환 Array.isArray([]); Array.is..

JavaScript 2022.04.10
반응형