♻️ 개발자로 재활용/🟢 JavaScript 18

JavaScript Koans (1) : 연산자와 변수, 호이스팅

Part 2 : Types ✅ 강한 연산자 === 과 느슨한 연산자 == ==는 실행 중 타입 변환(type coercion)이 일어나기 때문에 2 == ’2’가 ture라는 결과를 내놓는다. 다소 복잡하고 명확한 규칙이 존재하지 않아 프로그램의 작동을 예측하기 어렵게 만드는 것. 때문에 앞으로 엄격한 동치 연산(strict equality)인 === 사용을 권고한다. ✅ Addition (+) 더하기 연산자 참고 숫자 피연산자의 합을 구하거나, 문자열을 서로 연결한다. // number + number -> 덧셈 1 + 1 // 2 // string + string -> 문자열 연결 '1' + '1' // 11, string // number + string -> string으로 타입 변환 1 + '1..

함수가 선언된 어휘적 환경, 클로저 Closure

MDN에서 설명하는 클로저(Closure)의 정의는 다음과 같다. A closure is the combination of a function and the lexical environment within which that function was declared. 클로저는 함수와 함수가 선언된 어휘적 환경의 조합을 말한다. This environment consists of any local variables that were in-scope at the time the closure was created. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다. 여기서 키워드는 '함수가 선언'된 '어휘적 환경(lexical environment)'이다. JS는 함수가 호출되..

변수가 접근할 수 있는 범위, 스코프 Scope

게임에서 스코프(Scope:범위)란 일반적으로 총에 장착하는 조준경을 말한다. JS의 Scope는 제한된 범위를 들여다보기 위한 개념으로, ‘변수에 접근할 수 있는 범위’로 사용된다. 이번 시간에는 Scope의 종류과 각 선언 키워드인 let, const를 어떻게 사용해야 하는지 알아본다. (수업 외 참고가 된 자료) Scope의 정의와 기초 규칙 Scope란 해당 변수가 접근할 수 있는 변수, 객체 그리고 함수의 집합을 의미한다. 즉, 변수 접근 규칙에 따른 유효 범위를 뜻한다. scope의 범위는 중괄호{} 또는 함수에 의해 나누어진다. 범위 밖에서 선언한 변수는 안에서 접근할 수 있다. 하지만 안에서 선언한 변수는 밖에서 접근할 수 없다. (안→밖 참조만 가능) 스코프의 가장 바깥쪽을 전역 스코프(..

원시 자료형 & 참조 자료형

데이터를 저장하는 방식에 따른 분류로 원시 자료형(primitive data type)과 참조 자료형(refrerence data type)이 있다. 원시 자료형 : 변수에 value값을 직접 지정한다. 고정된 저장 공간을 차지하는 데이터. (number, string, boolean 등) 참조 자료형 : 변수에 데이터에 접근할 수 있는 주소reference를 지정한다. 대량의 데이터를 다루기에 적합한 타입. (array, object 등) 참조 자료형은 원시 자료형과 달리 저장 공간이 유동적으로 늘어난다. 배열과 객체, 함수가 담긴 저장 공간은 특별한 저장 공간을 사용하기 때문이다. 이런 특성들에 대해 알아보자. 1. 원시 자료형 (primitive data type) 메모리를 stack이라고 이름붙인..

JavaScript : 객체

JS의 객체는 게임 캐릭터에 비유할 수 있다. 사용자들의 캐릭터는 동일하게 직업과 능력을 가지고 있지만, 세부적인 내용은 다르다. 누군가는 A라는 아이디에 mage라는 직업을, 누군가는 B라는 ID에 rouge라는 직업을 가지고 있다. 이렇게 각기 다른 값을 가질 수 있지만, 입력해야 하는 데이터의 종류가 동일한 경우 객체를 사용하면 손쉽게 데이터를 관리할 수 있다. 객체 기초 객체의 선언은 중괄호{}를 이용하며, 키(key)와 값(value)으로 구성되어 있다. let user = { name : 'Alex', age : 35, email : 'alex@gmail.com' } 여기서 name, age, email 등은 key(키)이다. 키에 속한 'Alex', 35, alx@gmail.com 등은 ke..

JavaScript : 배열

앞서 배운 변수는 JS에서 사용할 수 있는 다양한 타입의 값을 넣을 수 있지만, 하나의 변수에는 하나의 값만 넣을 수 있다. 대량의 데이터를 쉽게 다루기 위해 사용하는 것이 바로 배열(Array)과 객체(Object)이다. 1. 배열 기초 배열은 순서가 있는 값을 의미한다. 이 값을 element라고 부른다. 배열의 순서는 index라고 부른다. 1이 아닌 0부터 번호를 매긴다. 대괄호[]로 배열을 정의하고, 배열 안의 element는 쉼표로 구분한다. let myNum = [73, 98, 3, 61, 11]; // 0번째 인덱스값은 73이다. // 2번째 인덱스값은 3이다. 배열의 값에 접근하기 배열이름[인덱스]를 통해 접근한다. let fruits = ['banana', 'apple', 'pineap..

JavaScript : 반복문 for과 while

반복문(Loop)은 같거나, 비슷한 코드를 여러 번 실행시켜야 할 때 사용하는 구문이다. 단순 기능을 반복하거나, 특정 조건에 따라 코드를 실행시킬 수 있다. 만약 숫자 1부터 순서대로 2를 더하고, 더한 값에 3을 더하고, 더한 값에 4를 더한다고 생각해보자. 단순히 생각하면 같은 구문을 계속 쓰면 되겠지만, 이런 조건식이 늘어나면 수정을 하거나 오류를 찾는 게 더 어려워진다. let sum = 1; sum = sum + 2; sum = sum + 3; sum = sum + 4; console.log(sum) 이를 위해 사용하는 것이 반복문이다. 위 내용을 아래처럼 풀어 써 보자. let sum = 1; sum = sum + n; // sum과 숫자n의 합을 sum에 대입한다 let n = 2; // ..

JavaScript : 문자열과 자주 사용하는 메서드

문자열(string)은 일상생활에서 확인 가능한 모든 글자의 나열이다. 코드와 의도한 문자열을 구분하기 위해 작은따옴표('')를 사용한다. 문자 하나는 character이며, char이라는 축약어로 부르기도 한다. 문자열의 특징 문자열에 있는 문자 하나하나는 배열에 접근하듯이 접근할 수 있다. 0은, 첫번째 글자, 1은 두번째 글자인 식으로. 만약 문자 수보다 긴 배열로 접근하면 값은 undefined를 나타낸다. 이 방법은 읽을 수만 있고, 변경시킬 수는 없는 방법이다. let word = 'hello world'; console.log(word[0]); // 'h' console.log(word[3]); // 'l' console.log(word[15]); // undefined 문자열은 '+' 연산..