문과 표현식 자바스크립트에서 문과 표현식은 중요한 차이가 있다. var a = 3 * 6; var b = a; b; 3 * 6은 표현식이다. 두번째 줄과 세번째 줄 또한 표현식이다. var a = 3 * 6, var b = a 두 문은 각각 변수를 선언 하므로 선언문 이라 한다. a = 3 * 6 이나 b = a는 할당 표현식 이라 한다. 세번째 줄은 표현식의 전부이지만 이것만으로 완벽한 문이다. 일반적으로 이 문은 표현식 문이라 한다. 1 - 문의 완료 값 모든 문은 완료 값을 갖는다. 심지어 undefined값을 갖을 수 있어도 갖는다. var문의 완료값은 undefined이다. 실제로 var a = 42를 콘솔창에 실행시켜 보면 42 대신 undefined가 나온다. 이는 콘솔이 실행한 문의 완료 ..
JavaScript
목차 값 변환 추상 연산 명시적 강제변환 암시적 변환 느슨한/엄격한 동등 비교 추상 관계 비교 1. 값 변환 타입 캐스팅 강제 변환 구분 어떤 값의 타입을 바꾸는 과정이 명시적이면 타입 캐스팅이다. (정적타입 언어에서 컴파일시점에 발생) 어떤 값의 타입을 바꾸는 과정이 암시적이면 강제 변환이다. (동적타입 언어에서 런타임시점에 발생) 명시적 강제변환 : 코드에서 의도적으로 타입 변환을 일으키는 것이 명백 const a = 42; const b = String(a);// 명시적 "42" 암시적 강제변환 : 다른 작업 도중 불분명한 부수효과로 부터 발생한 타입 변환 2. 추상 연산 -ToString 문자열이 아닌 값 → 문자열 변환은 ToString 추상 연산 로직이 담당한다. 내장 원시 값은 본연의 문자열..
Chapter 3 네이티브 네이티비는 내장된 함수이다. 가장 많이 쓰는 네이티브 - String() ➡ 네이티브는 생성자 처럼 사용 가능하지만, 실제 생성되는 원시값이 아닌 원시 값을 감싼 객체 타입이다. - Number() - Bollean() - Array() - Object() - Function() - Date() - Error() - Symbol() 3️⃣.1️⃣ 내부[[class]] typeof 가 object인 값에는 [[class]]라는 내부 프로퍼티가 있지만(전통적인 클래스 보다는 내부 분류법의 일부), 이 프로퍼티는 Object.proptype.toString()에 메서드를 넣어 호출해야 접근 가능하다. 배열은 "Array", 정규식은 "RegExp" 내부 [[class]]값이 있다. ..
2️⃣.4️⃣ 특수값 : JS개발자들이 조심해야 하는 특수값들 2️⃣.4️⃣.1️⃣ 값이 아닌 값 undefined 타입의 값은 undefined, null 타입의 값은 null 뿐이다 ( 타입과 값이 같다 ) null : 빈 값이다. 값이 있었지만 현제는 없는 상태 (식별자가 아닌 키워드로, null이라는 변수에 할당 X) undefined : 실종된 값. 값을 아직 갖지 않은 것 (undefined는 식별자로 사용가능) 2️⃣.4️⃣.2️⃣ Undefined 느슨한 모드에서는 전역 스코프에서 undefined란 식별자에 값을 할당할 수 있다. // 이 두개 모두 비추이다... 하지만 모드에 상관없이 undefined라는 이름을 갖는 지역변수를 생성할 수 있다. // 이 두개 모두 비추이다... voi..
2️⃣.1️⃣ 배열 JS 배열은 문자열, 숫자, 객체, 다른배열( 다차원 배열 )을 담을 수 있는 그릇이다. const a = [1, "2", [3]]; console.log(a); // [1, '2', [3]] a[3] = 4; console.log(a.length); // 4 a["key"] = "value"; console.log(a); // [1, '2', [3], 4, key: 'value'] console.log(a.length); // 4 또한 빈 배열을 주의하자. 그리고 값은 나중에 추가할 수 있다 let b = []; b[0] = 1; b[2] = 3; console.log(b); // [1, empty, 3] 이때는 a[1]에 undefined 하는 것과는 다르다. console.log..
챕터 1 타입 Type = 자바스크립트 엔진, 개발자가 모두에게 어떤 값을 다른 값과 구별할 수 있는, 고유한 내부 특성의 집합 1.1 타입의 실체를 이해하자 타입별 내재된 특성을 알고 있어야 값을 다른 타입으로 변활하는 방법을 정확히 이해가능하다. 어떤 형태로든 강제변환(coercion)이 이러나므로 인지하고 사용하는 것이 중요하다. 1.2 내장타입 ◽null ◽undefined ◽boolean ◽number ◽string ◽object🔰 ◽symbol object를 제외한 나머지 타입은 "원시타입" 이다. typeof 연산자를 이용해 반환값의 타입을 알 수 있다. ex ◽typeof undefined === "undefined" // true ◽typeof true === "boolean" // tr..