while문에서 루프를 제한하기 위한 수를 이용할 때 전위연산자와 후위연산자가 다르게 동작한다. 1. 루프 제어문으로 전위 연산자를 while에 사용했을 때. let i = 0; while (++i < 5) { console.log(i); } console.log('-------') ++i i < 5 i console.log(i) 1 1 < 5 1 1 2 2 < 5 2 2 3 3 < 5 3 3 4 4 < 5 4 4 5 5 < 5 (false) 전위연산자는 미리 연산 후 자료 처리에 쓰이게 된다. 따라서 먼저 1이 가산이 된 후 그 다음 비교값에서 처리가 된다. 따라서 1~4까지 출력이 되며, 5는 출력되지 않는다. 2. 루프 제어문으로 후위 연산자를 while에 사용했을 때 let j = 0; while..
자바스크립트에는 여덟가지 자료형이 있다. 그 중 일곱개(숫자형, 문자열, 불린값 등)는 오직 하나의 데이터만 담을 수 있어 원시형(Primitive type)라고 불린다. 객체형은 원시형과 달리 다양한 데이터를 담을 수 있다. (키로 구분된 데이터 집합이나 복잡한 개체(entity)를 저장할 수 있다.) 객체는 자바스크립트의 거의 모든 면에 녹아있는 개념이므로 자바스크립트를 잘 다루려면 객체를 잘 이해하고 있어야 한다. 객체는 중괄호 {...}를 이용해 만들 수 있다. 중괄호 안에는 '키(key) : 값(value)' 쌍으로 구성된 프로퍼티(property)를 여러개 넣을 수 있는데 키에는 문자형, 값엔 모든 자료형이 허용된다. 프로퍼티 키는 프로퍼티 이름이라고도 불리운다. 서랍장을 상상하면 객체를 이해..
https://ko.javascript.info/array 배열 ko.javascript.info 순서가 있는 컬렉션을 다뤄야 할 때 객체를 사용하면 순서와 관련된 메서드가 없어 불편하다. 객체는 태생이 순서를 고려하지 않고 만들어진 자료구조이기 때문에 객체를 이용하면 새로운 프로퍼티를 기존 프로퍼티 사이에 끼워 넣는것도 불가능하다. 이럴땐 순서가 있는 컬렉션을 저장할 때 쓰는 자료구조인 배열을 사용할 수 있다. 배열 선언 let array = new Array(3); console.log(array); let fruits = ['사과', '오렌지', '자두']; console.log(fruits[0]); console.log(fruits[1]); console.log(fruits[2]); 배열 수정/추..
클래스(Class)는 객체를 생성하기 위한 템플릿이다. 클래스는 데이터와 이를 조작하는 코드를 하나로 추상화한다. 자바스크립트에서 클래스는 자바스크립트 문법(?) 중 하나인 프로토타입을 이용해서 만들어졌다. 클래스는 특별한 함수 정도로 취급할 수 있다. 함수가 함수 표현식과 함수 선언을 갖듯이 클래스도 클래스 표현식과 클래스 선언문을 갖는다. 클래스로 찍어낸 객체들은 인스턴스(Instance)라고 불리운다. 모든 객체가 인스턴스가 되는 것이 아니다. 클래스로 찍어낸 객체여야만 인스턴스라고 불리운다. class Rrrr { constructor(){} function() {} function() {} } class Human { constructor(age, tall) { this.age = age; th..
객체 기본 객체는 관련된 데이터와 함수의 집합이다. 객체는 프로퍼티(Property)과 메서드(Method)로 구성된다. 프로퍼티는 명시적으로 선언된 것으로 정의할 수 있고 메서드는 동적인 개념으로 선언된 것이다. 자바스크립트에서는 객체에 선언된 함수를 메서드라고 칭한다. const DC = { age: 30; // Property state: function(behavior) { console.log('behavior'); } // Method } 상수(Constant)로 설정된 DC라는 객체이다 해당 객체의 age는 30살으로 명시되어 있다. 그래서 age는 DC 객체 내 프로퍼티이다. 해당 객체의 state는 함수로써 값에 따라 출력이 바뀐다. 따라서 state는 DC 객체 내 메서드이다. 객체 동..
변수(Variables)란 자료를 저장할 수 있는 공간이라고 정의할 수 있다. 즉 변수란 메모리의 기억장소이다. 프로그램은 인풋받은 데이터를 처리해야 하는데 이 때 데이터들을 임시로 보관할 수 있어야 프로세스를 정상적으로 실행할 수 있다. 이를 위해 변수를 선언한다. 이 때, 변수는 원시타입(Primitive)과 객체타입(Object)으로 나뉜다. 원시타입(Primitive) 객체타입(Object) 숫자형(number) 객체(object) 문자열(string) 함수(function) 불린(boolean) 빈 값(null, undefined) symbol 두 타입이 다른 결정적인 요소는 메모리의 사용에 있다. 원시타입 변수 선언 및 데이터 할당시 데이터의 할당은 해당 메모리에 직접적으로 일어난다. 객체타입..
함수는 어떤 동작을 수행하기 위해 코드를 모아놓은 것이다. 따라서 함수의 이름은 대개 동사이다. 함수 이름은 가능한 한 간결하고 명확하게 해야한다. 코드를 읽은 사람은 함수 이름만 보고도 함수가 어떤 기능을 하는지 힌트를 얻을 수 있어야 한다. 함수가 어떤 동작을 하는지 축약해서 설명해주는 동사를 접두어로 붙여 함수 이름을 만드는게 관습이다. 다만 팀 내에서 그 뜻이 반드시 합의된 접두어만 사용해야 한다. show - 대개 무언가를 보여주는 함수 get - 값을 반환함 calc - 무언가를 계산함 create - 무언가를 생성함 check - 무언가를 확인하고 불린값을 반환함 showMessage() //메세지를 보여줌. getAge() // 나이를 나타내는 값을 얻고 그 값을 반환함. calcSum()..
기본값 매개변수에 값을 전달하지 않으면 그 값은 undefined가 된다. function showMessage(from, text) { alert( from + ': ' + text ); } showMessage("Ann"); 매개변수에 값을 전달하지 않아도 그 값이 undefined가 되지 않게 하려면 기본값(default value)을 설정해주면 된다. 매개변수 오른쪽에 =을 붙이고 undefined 대신 설정하고자 하는 기본 값을 써준다. function showMessage(from, text = 'no text given') { alert( from + ': ' + text ); } showMessage("Ann"); 매개변수 기본값을 설정할 수 있는 또 다른 방법 가끔은 함수 선언부에서 매개..
함수 선언(function declaration) function showMessage() { alert('함수 선언!'); } showMessage(); // 선언된 함수를 호출 showMessage(); // 선언된 함수를 호출 함수 선언은 함수 키워드(function) + 함수 이름 + 매개변수 괄호를 입력함으로써 할 수 있음. 위에서는 showMessage를 두 번 호출했으므로 얼럿 창이 2번 뜨게 됨. (위에서 볼 수 있듯, 함수의 주요 용도 중 하나는 중복코드 피하기) 지역 변수(local variable) function showMessage() { let message = '안녕하세요!'; alert( message ); showMessage(); // 호출됨. alert( message ..
출처 : https://ko.javascript.info/while-for while과 for 반복문 ko.javascript.info 나의 답 소수를 구하는 로직을 알아야 하고 조건에 해당할 경우, 반복문을 어떻게 빠져나올지 알아야하는 문제였다. continue 레이블;