분류 전체보기

    [JavaScript] JavaScript 기본 문법 (4) - 객체 (1) - 기본 개념

    객체 (Object) 키(key) : 값(value) 쌍으로 이루어진 property(프로퍼티)를 여러 개 저장할 수 있는 자료형. 객체 생성법 let user = new Object(); // '객체 생성자' 문법 let user = {}; // '객체 리터럴' 문법 객체 선언은 주로 객체 리터럴(object literal) 방법을 사용. 객체 생성자 함수를 사용한 객체의 생성은 기본문법(7)-객체(4)에서 서술. 객체 프로퍼티 조작 객체 생성 let user = { name: "John", // key: "name", value: "John" age: 30 // key: "age", value: 30 }; Property 추가 (object).(key) = (value) 또는 (object name)..

    [JavaScript] JavaScript 기본 문법 (3) - 반복문에서의 Label(레이블), break, continue.

    break, continue break, continue의 용법은 다른 언어에서와 동일하다. for (let i = 0; i < 5; i++) { console.log(i); if (i === 2) { break; } } // output : // 0 // 1 // 2 for (let i = 0; i < 5; i++) { if (i === 2) { continue; } console.log(i); } // output : // 0 // 1 // 3 // 4 break 는 현재 진행되는 반복문을 탈출하며, continue 는 현재 iteration(반복)을 종료, 다음 iteration으로 넘어간다. 문제는 반복문이 중첩되었을 때, 안쪽 반복문에서 여러 반복문을 한 번에 탈출하고 싶거나, 바깥쪽 반복문에서..

    [JavaScript] JavaScript 기본 문법 (2) - 동등 연산자(Equal Operator), 일치 연산자(Strict Equal Operator) : ==, === / !=, !==

    Equal Operator (==) JavaScript에서는, == 연산자로 피연산자를 비교할 때, 두 피연산자를 비교할 수 있는 형태로 먼저 변환시켜서 비교한다. 즉, 두 피연산자의 자료형이 같지 않다면 형변환이 먼저 일어난다. console.log(123 == "123"); //true console.log(true == 1); //true console.log(true == "1"); //true console.log(true == "true"); //false console.log(null == "false"); //false console.log(null == false); //false console.log(null == undefined); //true 물론 != 의 경우는 정반대의 outp..

    [JavaScript] JavaScript 기본 문법 (1) - 논리 연산자 and(&&)와 or(||), 그리고 short circuit-evaluation(단락 평가).

    JavaScript의 논리 연산자에는 여타 언어와 같이 AND(&&), OR(||), NOT(!) 이 존재한다. 이들의 기본적인 용법은 다른 언어와 거의 동일하다. 이 글에서는 short circuit evaluation에 대해서만 다루도록 하겠다. Short-Circuit Evaluation Short-Circuit Evaluation - 단락 평가(단축 평가) JavaScript의 AND, OR 연산에서는 앞의 조건(피연산자)의 값에 따라 뒤의 조건(피연산자)의 값을 고려(평가, 실행)하지 않는다. 이러한 방식을 short-circuit evaluation이라고 한다. 반대로 앞의 피연산자에 따라 연산의 결과가 결정되는지에 상관없이 모든 피연산자를 고려하는 방식을 eager evaluation 이라고..

    [Node.js / JavaScript] Node.js 개발환경 설정하기 (2) - TypeScript, 그리고 동적 타이핑(Dynamic Typing).

    Dynamic Typing of JS. JavaScript는 Dynamically Typed Language. - 동적으로 타입(자료형)이 정의되는 언어이다. 즉, 변수를 선언할 때, 타입(자료형)이 미리 지정되지 않고, 변수에 값이 할당되는 과정에서 자동으로 변수의 타입(자료형)이 결정되는 것이다. 따라서 같은 변수에 여러 자료형의 값을 할당해 줘도 문제가 일어나지 않는데, 예를 들면, let a = "HI" console.log(a) // output : HI a = 1 console.log(a) // output : 1 a = "c" console.log(a) // output : c a = "6" + 4 console.log(a) // output : 64 와 같은 코드들이 정상적으로 작동한다는 ..

    [Node.js] Node.js 개발환경 설정하기 (1) - Formatter(Prettier), Linter(ESLint) + Extensions (포매터, 린터 + 여러 확장 프로그램)

    ** M1 Mac, VSCode를 이용한 개발환경 설정입니다 우선 원하는 파일 경로로 들어가서 terminal에 입력 후 시작. $ npm init -y Prettier (Formatter) 1. 먼저, Extensions에서 Prettier 검색 후 설치. 2. 이후 터미널에서 설치해줍니다. $ npm i prettier -D -E i 는 install의 줄임. -D는 --save-dev 의 줄임입니다. $ npm install prettier --save-dev -E 와 같이 입력하셔도 됩니다. 3. cmd + , (settings) 에서 format을 입력해주고 여러 설정을 체크해줍니다. 저는 제 편한 대로 설정함. Format On Paste / Save / Type 모두 체크표시 해줌. 차례로 ..

    [Xcode / Cocoapods] M1 Mac 환경에서 pod init 에러 - (RuntimeError - [Xcodeproj] Unknown object version.)

    Error Message RuntimeError - [Xcodeproj] Unknown object version. git에서 레포를 clone 후에, podfile 관련 모두 삭제하고 pod init 했는데 실행 오류 났다. 구글링해서 cocoapods 재설치로 해결되었다는 내용이 있어 재설치해보니 해결. homebrew로 cocoapods를 설치해서 생긴 오류인가? 라고 스을쩍 의심해본다. 아님 말고. 1. cocoapods uninstall homebrew로 cocoapods를 설치해주었기에, 다시 homebrew로 삭제해주었다. $ brew uninstall cocoapods 2. cocoapods re-install Ruby의 Library package 관리 도구인 gem을 이용해 다시 설치해..

    [Xcode / Cocoapods] M1 Mac 환경에서 pod install 에러 (iterm2 사용) - You may have encountered a bug in the Ruby interpreter or extension libraries.

    Error Message You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: https://www.ruby-lang.org/bugreport.html [IMPORTANT] Don&#39;t forget to include the Crash Report log file under DiagnosticReports directory in bug reports. 구글링해서 이것저것 다 해봤더니 아무튼 성공. 1. sudo arch -x86_64 gem install ffi 그대로 입력. $ sudo arch -x86_64 gem install ffi 2. ..