JavaScript 60

javaScript-함수8 (재귀 함수)

함수가 자기 자신을 호출하는 것을 재귀 호출이라 한다. 재귀 함수는 자기 자신을 호출하는 행위, 즉 재귀 호출을 수행하는 함수를 말한다. 재귀 함수는 반복되는 처리를 위해 사용한다. 예를 들어 10부터 0까지 출력하는 함수를 구현하면 function countdown(n){ for (var i = n; i >= 0; i--) console.log(i); } countdown(10); countdown 함수에 반복문으로 구현했지만 재귀 함수를 이용하면 반복문 없이 구현할 수 있다. function countdown(n){ if (n < 0) return; console.log(n); countdown(n - 1); // 재귀 호출 } countdown(10); 여기서 사용한 식별자 countdown는 함수..

JavaScript 2023.02.21

javaScript-함수7 (즉시 실행 함수)

즉시 실행 함수 함수 정의와 동시에 즉시 호출되는 함수를 즉시 실행 함수라고 한다. 즉시 실행 함수는 단 한 번만 호출되며 다시 호출할 수 없다. // 익명 즉시 실행 함수 (function ( ){ var a = 3; var b = 5; return a * b; }()); 즉시 실행 함수는 함수 이름이 없는 익명 함수를 사용하는 것이 일반적. 함수 이름이 있는 기명 즉시 실행 함수도 사용할 수 있다. // 기명 즉시 실행 함수 (function foo(){ var a = 3; var b = 5; return a * b; }()); foo(); // ReferenceError: foo is not defined 하지만 그룹 연산자 ( ... ) 내의 기명 함수는 함수 선언문이 아니라 함수 리터럴로 평가되..

JavaScript 2023.02.21

javaScript-함수6 (반환문)

함수는 return 키워드와 표현식(반환값)으로 이뤄진 반환문을 사용해 실행 결과를 함수 외부로 반환할 수 있다. function multiply(x, y){ return x * y; // 반환문 } // 함수 호출은 반환값으로 평가된다. var result = multiply(3, 5); console.log(result); // 15 multiply 함수는 두 개의 인수를 전달받아 곱한 결과값을 return 키워드를 사용해 반환한다. 함수는 return 키워드를 사용해 자바스크립트에서 사용 가능한 모든 값을 반환할 수 있다. 함수 호출은 표현식이다. 함수 호출 표현식은 return 키워드가 반환한 표현식의 평과 결과, 즉 반환값으로 평가된다. 반환문은 두 가지 역할을 한다. 1. 반환문은 함수의 실행..

JavaScript 2023.02.20

javaScript-함수5 (인수확인, 매개변수의 최대 개수)

인수 확인 자바스크립트 함수는 매개변수와 인수의 개수가 일치하는지 확인하지 않는다. 자바스크립트는 동적 타입 언어다. 따라서 자바스크립트 함수는 매개변수의 타입을 사전에 지정할 수 없다. function add(x, y){ return x + y; } console.log(add(2)); // NaN console.log(add('a', 'b')); // 'ab' 이러한 자바스크립트의 특성 때문에 위의 코드에서 아무런 이의 제기없이 코드를 실행한다. 따라서 자바스크립트의 경우 함수를 정의할 때 적절한 인수가 전달되었는지 확인할 필요가 있다. function add(x, y){ if (typeof x !== 'number' ¦¦ typeof y !== 'number' ){ // 매개변수를 통해 전달된 인수..

JavaScript 2023.02.20

javaScript-함수4 (함수 호출)

화살표 함수 ES6에서 도입된 화살표 함수는 function 키워드 대신 화살표를 사용해 좀 더 간략하게 함수를 선언할 수 있다. 화살표 함수는 항상 익명 함수로 정의한다. // 화살표 함수 const add = (x, y) => x + y; console.log(add(2, 5)); // 7 화살표 함수는 기존의 함수 선언문 또는 함수 표현식을 완전히 대체하기 위해 디자인된 것은 아니다. 화살표 함수는 생성자 함수로 사용할 수 없으며, 기존 함수와 this 바인딩 방식이 다르고, prototype 프로퍼티가 없으며 arguments 객체를 생성하지 않는다. 함수 호출 함수는 함수를 가리키는 식별자와 한 쌍의 소괄호인 함수 호출 연산자로 호출한다. 함수 호출 연산자 내에는 0개 이상의 인수를 쉼표로 구분..

JavaScript 2023.02.20

javaScript-함수2 (함수 선언문)

함수 정의 함수 정의란 함수를 호출하기 이전에 인수를 전달받을 매개변수와 실행할 문들, 그리고 반환할 값을 지정하는 것을 말한다. 함수 선언문 function add(x, y){ return x + y; } 함수 표현식 var add = function (x, y){ return x + y; } function 생성자 함수 var add = new Function('x', 'y', 'return x + y'); 화살표 함수 var add = (x, y) => x + y; 함수 선언문 // 함수 선언문 function add(x, y){ return x + y; } // 함수 참조 // console.dir은 console.log와 달리 함수 객체의 프로퍼티까지 출력한다. console.dir(add); ..

JavaScript 2023.02.17

javaScript-함수1

함수란 자바스크립트에서 중요한 개념이다. 프로그래밍의 함수와 수학의 함수는 같은 개념이다. 함수 (x,y) = x + y를 자바스크립트의 함수로 표현하면 // f(x, y) = x + y function add(x,y) { return x + y; } // f(2, 5) = 7 add(2, 5); //7 프로그램이 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 함수는 함수 정의를 통해 생성한다 함수 선언문으로 // 함수 정의 function add(x, y){ return x + y; } 함수 정의만으로 함수가 실행되지는 않는다. 인수를 매개변수를 통해 함수에 전달하면서 실행을 명시적으로 지시해야 한다. 이를 함수호출 이라고 한다. // 함수 호출 ..

JavaScript 2023.02.17

javaScript-원시 값

원시 값이란 원시 타입의 값, 즉 원시 값은 변경이 불가능한 값이다. 한번 생성된 원시 값은 읽기 전용 값으로서 변경할 수 없다. 여기서 변경 불가능하다는 것은 변수가 아니라 값이다. 원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것이 아니다. 변수는 재할당을 통해 변경할 수 있다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다. 객체 : 객체는 프로퍼티의 개수가 정해져 있지 않으며, 동적으로 추가되고 삭제할 수 있다. 또한 프로퍼티의 값에도 제약이 없다. 즉, 변경 가능한 값이다. 객체의 구조적 단점에는 부작용이 있다. 그것은 원시 값과는 다르게 여러 개의 식별자가 하나의 객체를 공유할 수 있다는 것.

JavaScript 2023.02.17

javaScript-객체 리터럴

자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 모든 것이 객체다. 원시값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. var person = { name: 'Lee', age: 26 } 여기서 name: 'Lee', 전체를 프로퍼티라고 하고, name을 프로퍼티 키, 26을 프로퍼티 값이라고 한다. 여기서 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드 라고 부른다. 예시로 var counter = { num:0, increase: function(){ this.num++; } }; 여기서 num:0, 은 프로퍼티, increase: funtion(){ t..

JavaScript 2023.02.15

JavaScript-for

for문을 다시 공부하면서 for ( var = i; i < 20; i++){ console.log(i); } 반복문인 for문을 사용하면 i는 20보다 클 때 까지 1씩 증가한다. 하지만 나는 var는 코드량이 많아질 때 오류가 발생할 수 있다는 말을 듣고 변수 선언을 할 때 const를 사용하였다. 하지만 작동하지 않았다, 둘 다 같은 변수 선언인데 왜 안되나 했더니 const는 변수 재할당 및 재선언이 불가능하기 때문이다. 구글링을 통해서 const, var, let의 차이를 다시 알게 되었고 요즘 코딩의 자리를 위협한다는 chat GPT을 이용해서 더 자세히 알게되었다. 아직 코딩을 공부하는 나에게는 코딩의 자리를 위협하는 AI가 또 하나의 선생이자 더 깊이 알 수 있게한다는 모순이 있지만 모든 ..

JavaScript 2023.02.13