while문은 주어진 조건식의 평가결과로 코드를 실행한다. 당연히 평가결과가 참일때 실행된다 > var count = 0; while (count // 무한루프 while(true) { console.log(무한루프); } > 위와 같은 조건식이 항상 true 인 경우에 끝나지 않는 무한루프에 빠지게 된다. 위처럼 true 라는 조건을 직접 주는 ...
반복문이란 > 반복문은 조건식이 참일 경우 코드 블록을 실행한다. 이후 다시 평가하여 거짓일때 까지 반복한다. for문 > for문은 조건식이 거짓으로 평가될 때 까지 코드 블록을 반복 실행한다. > for (let index = 0; index for ( le
switch 문 > switch 문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다. swith 문의 표현식과 일치하는 case 문이 없다면 실행 순서는 default 문으로 이동한다. > const currentNam
논리 연산자는 우항과 좌항의 피연산자를 논리 연산한다. 논리합( || ) 연산자 > true || true // true > true || false // true > false || true // true > false || false // false > 논리합
블록문 > 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 단독으로도 사용할 수 있으나, 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적이다. > // 블록문 { var foo = 10;} // 제어문 var x = 1; if (x 조건문은 주어진 식의 평가 결과에 대해 코드 블록(블록문)의 실행...
할당연산자
이항 산술 연산자 > 이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. 모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수효과는 없고, 새로운 값을 만든다. > 5 + 2; // 7 5 - 2; // 3 5 * 2; // 10 5 / 2; // 2.5 > 피연산자인 5와 2를 통해 새로운 값이 만들어지는 것을 알 수 있다. 단...
값 > 30 + 50; // 80 여기서 80을 값 이라고 부른다. > 값은 표현식이 평가되어 생성된 결과를 말한다. 리터럴 > 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법을 말한다. > 숫자 리터럴 1 , 2 위의 예제는 단순 아라비아 숫자 1,2 가 아닌 숫자 리터럴이다. 리터럴은 사람이 이해할 수 있...
이 글에서는 호이스팅에 대해 말해보려한다.
이 글에서는 자바스크립트 변수에 대해 말해보려한다.
타입 변환 자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타임 캐스팅이라고 한다. > var x = 10; var str = x.toString(); // 숫자를 문자열로 타입 캐스팅한다. console.log(typeo...
객체 > const obj = {name = 'gunho' , age : 25} const obj2 = {} 두 가지의 객체에서 우린 각각의 비교를 해볼 것이다. > console.log({} === {}} // 1 console.log(obj === obj2) // 2 결과를 예측해보자 > 결과는 둘다 false 이다. > 객체는 범위를 가르...
함수란 ? 함수는 자바스크립트에서 가장 중요한 핵심이다. 수학의 함수는 입력을 받아 출력을 내보내는 일련의 과정을 정리한 것이다. > 프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 프로그래밍 언어의 함수도 입력을 받아서 출력을 내보낸다. 이때 함수 내부로 입력을 전달받는 변수를 매개...
함수의 생성 시점과 호이스팅 > 함수 선언문 > function add(x , y) { return x + y; } // 함수 선언문 전부를 끌어올림 > 함수 표현식 let sub = function(x , y) { return x + y; }; // 변수 선언 부분(let sub) 의 부분만 끌어올림 위 예제는 각각 함수 선언문으로 정의한 함수와 함...
즉시 실행 함수 함수 정의와 동시에 즉시 호출되는 함수를 즉시 실행 함수라고 한다. 즉시 실행 함수는 단 한번만 호출되며 다시 호출할 수 없다. > (function () { var a = 3; var b = 5; return a + b ; }()); 즉시 실행함수는 위와같이 함수 이름이 없는 익명 함수를 사용하는 것이 일반적이다. 함수 이름이 ...
스코프란 ? 스코프는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다. 스코프의 이해가 부족하면 다른 개념을 이해하기 어려울 수 있다. > function add(x,y) { // 매개변수는 함수 몸체 내부에서만 참조할 수 있다. // 즉, 매개변수의 스코프(유효범위)는 함수 몸체 내부이다. console.log(x,y); //...
내부 슬롯과 내부 메서드 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMA Script 사양에서 사용하는 의사 프로퍼티 의사 메서드다. ECMA Script 사양에 등장하는 이중 대괄호 [[...]] 로 감싼 이름들이 내부 슬롯과 내부 메서드이다. > 설명을 위한 의사 코드 > const o = {}; // 내...
Object 생성자 함수 new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환한다. 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다. > // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'Lee'; person.sayHell...
다음 조건을 만족하는 객체를 일급 객체라 한다. > 1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 다음 예제와 같이 위의 조건을 모두 만족하므로 일급 객체다. > const inc...
프로토타입 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 "모든 것" 이 객체다. 객체지향 프로그래밍 객체지향 프로그래밍은 실세계의 실체(사물이나 개념)를 인식하는 철학적 사고를 프로그래밍에 접목하려는 시도에서 시작한다. > 예를 들어, 사람은 이름, 주소, 성별, 나이, 신장, 체중 등 다양한 속성을 갖는다. ...
strict mode란 ? 다음 예제 실행 결과를 예측해보자 > function foo() { x = 10; } foo(); consoloe.log(x); // ? 함수 내부에서 선언하지 않은 x 변수에 값 10을 할당했다. 전역 스코프에서도 x 변수의 선언이 존재하지 않기 때문에 ReferenceError를 발생시킬 것 같지만 자바스크립트는 암묵...
자바스크립트 객체의 분류 > 표준 빌트인 객체 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다. 정의된 객체이므로 자바스크립트 실행환경과 관계없이 언제나 사용할 수 있다. 전역 객체의 프로퍼티로써 제공된다. > 호스트 객체 호스트 객체는 ECMAScript 사양에 정의되어 있지 않지만 자바스...
this this 키워드 > 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 구조이다. > 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. > 이때 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한...
소스코드의 타입 > 전역 코드 : 전역에 존재하는 소스코드를 말한다. 전역에 등록된 함수, 클래스 등의 내부 코드는 포함되지 않는다. > 함수 코드 : 함수 내부에 존재하는 소스코드를 말한다. 함수 내부에 중첩된 함수, 클래스 등의 내부 코드는 포함되지 않는다. > eval코드 : 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드를...
최근 알고리즘에 푹 빠져 공부를 하던 중 얕은 복사 라는 말을 듣고 궁금하기 시작했다. 복사면 그냥 복사지 무슨 깊고 얕은게 있나 할 수 있다. (난 그랬다.) > 이번에는 깊은 복사와 얕은 복사 그리고 참조에 대해서 정리해보려한다. 참조 > let arr = [1,2,3]; let arr1 = arr 위 코드를 간단히 설명하면 변수 arr1에 a...