분류 전체보기

[모던 자바스크립트 Deep Dive] 11장 - 원시 값과 객체의 비교

11.1 원시 값변경 불가능한 값원시 타입의 값, 즉 원시 값은 변경 불가능한 값한번 생성된 원시 값은 읽기 전용 값으로서 변경할 수 없음변경 불가능하다는 것은 변수가 아니라 값에 대한 진술변수: 메모리 공간 자체값: 변수에 저장된 데이터변수는 언제든지 재할당을 통해 변수 값을 변경(교체)할 수 있다상수: 재할당이 금지된 변수불변성: 변수 값을 변경하기 위해 원시 값을 재할당하면 새로운 메모리 공간을 확보하고 재할당한 값을 저장한 후, 변수가 참조하던 메모리 공간의 주소를 변경함불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없음문자열과 불변성문자열: 0개 이상의 문자로 이뤄진 집합1개 문자는 2byte의 메모리 공간에 저장됨문자열은 몇 개의 문자로 이뤄졌느냐에 따..

JavaScript 2023.01.07

[모던 자바스크립트 Deep Dive] 10장 - 객체 리터럴

10.1 객체란?js는 객체 기반의 프로그래밍 언어, 원시 값을 제외한 나머지 값은 모두 객체원시 타입은 단 하나의 값만 나타내고 원시 값은 변경 불가능한 값객체 타입은 다양한 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조이며 객체 값은 변경 가능한 값객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성js에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 없음js의 함수는 일급 객체이므로 값으로 취급할 수 있음. → 함수도 프로퍼티 값으로 사용 가능프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부름객체는 프로퍼티와 메서드로 구성된 집합체프로퍼티: 객체의 상태를 나타내는 값메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작객체..

JavaScript 2023.01.07

[모던 자바스크립트 Deep Dive] 09장 - 타입 변환과 단축 평가

9.1 타입 변환이란?자바스크립트의 모든 값은 타입이 있고, 개발자의 의도에 따라 다른 타입으로 변환 가능명시적 타입 변환(=타입 캐스팅): 개발자가 의도적으로 값의 타입을 변환하는 것암묵적 타입 변환(=타입 강제 변환)원시 값은 변경 불가능한 값 → 타입 변환은 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것단 한번 사용하고 버림 → 기존 변수 값을 재할당하여 변경하는 것이 아님9.2 암묵적 타입 변환개발자 의도와 상관없이 표현식을 평가하는 도중에 js 엔진에 의해 암묵적으로 타입이 자동 변환되는 것문자열 타입으로 변환1 + "2" // -> "12"+연산자는 피연산자 중 하나 이상이 문자열일 때 문자열 연결 연산자로 동작문자열 연결 연산자: 문자열 값을 만듦, 모든 피연산자는 모두 ..

JavaScript 2023.01.07

[인프런] Node.js / 섹션2 - 1, 2차원 배열 탐색 / 2. 보이는 학생

일렬로 서 있는 학생의 키가 앞에 서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수 앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않는다 나의 풀이 function solution(arr) { let answer = 1; let max = arr[0]; for (let i = 1; i max) { answer++; max = arr[i]; } } return answer; } let arr = [130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr));

[인프런] Node.js / 섹션1 - 기본문제 풀이 / 17. 중복 단어 제거

N개의 문자열 중 중복된 문자열은 제거하고 출력 나의 풀이 function solution(s) { let answer = []; for (let x of s) { if (!answer.includes(x)) { answer.push(x); } } return answer; } let str = ["good", "time", "good", "time", "student"]; console.log(solution(str)); 강사 풀이 function solution2(s) { let answer; answer = s.filter(function (v, i) { //v: 호출된 value i: 인덱스 return s.indexOf(v) === i; }); return answer; } let str = [..

[인프런] Node.js / 섹션1 - 기본문제 풀이 / 16. 중복문자제거

문자열에서 중복된 문자를 제거 나의 풀이 function solution(s) { let answer = ""; for (let x of s) { if (!answer.includes(x)) { answer += x; } } return answer; } console.log(solution("ksekkset")); 빈 문자열을 만들어, 해당 문자가 없으면 추가하도록 했다. 강사 풀이 function solution2(s) { let answer = ""; for (let i = 0; i < s.length; i++) { if (s.indexOf(s[i]) === i) { answer += s[i]; } } return answer; } console.log(solution2("ksekkset")); i..

[인프런] Node.js / 섹션1 - 기본문제 풀이 / 15. 가운데 문자 출력

소문자로 된 단어 중 가운데 문자를 출력 단, 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력 나의 풀이 function solution(s) { let answer; if (s.length % 2 === 0) { answer = s[s.length / 2 - 1] + s[s.length / 2]; } else { answer = s[Math.floor(s.length / 2)]; } return answer; } console.log(solution("good")); 강사 풀이 function solution2(s) { let answer; let mid = Math.floor(s.length / 2); if (s.length % 2 === 0) { answer = s.substring(mid -..