객체 리터럴자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 “모든 것”이 객체다. 원시 값을 제외한 나머지 값은(함수, 배열, 정규 표현식) 등은 모두 객체원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만 객체 타입의 값, 객체는 변경 가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드라고 부른다. 객체는 프로퍼티와 메서드로 구성된 집합체 프로퍼티: 객체의 상태를 나타내는 값(data)메서드:..
명시적 타입 변환(타입 캐스팅): 개발자가 의도적으로 값의 타입을 변환하는 것암묵적 타입 변환(타입 강제 변환): 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환 되는 것 원시 값은 변경 불가능한 값이므로 변경할 수 없음→ 타입 변환이란 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것 암묵적 타입 변환은 기존 변수 값을 재할당하여 변경하는 것이 아님→ 피연산자의 값을 암묵적 타입 변환해 새로운 타입의 값을 만들어 단 한 번 사용하고 버림 둘 중에 뭐를 더 많이 써야되는 것이 중요한 것이 아닌, 코드를 예측할 수 있어야 한다는 것이 중요암묵적 타입 변환 문자열 타입으로 변환(+)문자열 연결 연산자의 모든 피연산자는 코드의 문맥상 모..
6장 - 데이터 타입데이터 타입은 값의 종류를 말한다.자바스크립트(ES6)는 7개의 데이터 타입을 제공 원시 타입숫자 타입(number) → 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재문자열 타입(string) → 문자열불리언 타입(boolean) → 논리적 참과 거짓undefined 타입 → var 키워드로 선언된 변수에 암묵적으로 할당되는 값null 타입 → 값이 없다는 것을 의도적으로 명시할 때 사용하는 값심벌 타입(symbol) → ES6에서 추가된 7번째 타입 객체 타입객체, 함수, 배열 등숫자 타입자바스크립트는 독특하게 하나의 숫자 타입만 존재한다. ECMAScript 사양에 따르면 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따름→ 모든 수를 실수로 처리, 정수만 표현하기..
4장- 변수‘10 + 20’ 자바스크립트 코드를 계산(평가 하려면),10, 20, +라는 기호(리터럴과 연산자)의 의미를 알고 있어야 하며10 + 20이라는 식(표현식)의 의미도 해석(파싱)할 수 있어야 한다.자바스크립트 엔진이 10 + 20이라는 식의 의미를 해석하면 + 연산을 수행하기 위해 먼저 + 연산자의 좌변과 우변의 숫자 값, 피연산자를 기억한다.→ 이 때 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체 메모리 셀 하나의 크기는 1바이트(8비트) 컴퓨터는 메모리 셀의 크기, 즉 1바이트 단위로 데이터를 저장하거나 읽어들임 각 셀은 고유의 메모리 주소를 가짐→ 메모리 공간의 위치를 나타냄(0부터 시작, 메모리의 크기만큼 ..
1장 - 프로그래밍프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.→ 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라봐야하는데, 이때 필요한 것이 컴퓨팅 사고(Computational thinking)이다. 기계어로 직접 명령을 전달하는 것을 대신할 가장 유용한 대안은사람이 이해할 수 있는 약속된 구문으로 구성된 프로그래밍 언어를 사용해 프로그램을 작성 한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기(컴파일러, 인터프리터)를 이용하는 것이다. 프로그래밍 언어는 구문(syntax)와 의미(semantics)의 조합으로 표현된다. 문법을 잘 안다고 해서 외국어..
이 글은 KUIT Web 부원분들을 대상으로 쓴 글입니다. 프로토타입 자바스크립트 객체는 Prototype이라는 내부 프로퍼티가 존재한다. 거의 모든 객체가 생성 시점에 이 프로퍼티에 null이 아닌 값이 할당된다. 객체 내부에 없는 프로퍼티를 호출하게 되면? → 해당 프로퍼티를 찾지 못하면 바로 [[Prototype]]링크를 따라가 프로퍼티를 탐색한다. 모든 일반 객체의 최상위 프로토타입 연쇄는 내장 Object.prototype이고 이 지점에서도 찾지 못하면 탐색이 종료된다. (undefined 반환) 두 객체를 서로 연결짓는 가장 일반적인 방법은 함수 호출 시 new키워드를 앞에 붙이는 것이다. new키워드는 일반 함수 호출 + "객체" 생성이라는 잔업을 더 부과하는 지시자이다. const f = ..
Day 4 피자 나눠먹기(1) https://school.programmers.co.kr/learn/courses/30/lessons/120814 function solution(n) { // n을 7로 나눈 나머지를 integerCheck 변수에 저장 let integerCheck = n % 7; let answer = 0; // integerCheck가 0이라면 피자는 n / 7개가 필요하다. // 예시: 피자를 나눠먹을 사람이 21명이면 피자는 3판이 필요하다. if (integerCheck === 0) { answer = n / 7; } // integerCheck가 0이 아니라면 피자는 n / 7의 몫 + 1개가 필요하다. // 예시: 피자를 나눠먹을 사람이 22명이면 피자는 3판 + 1판이 필..