본문 바로가기
[JavaScript_DeepDive] 12. 함수(2) #참조에 의한 전달과 외부 상태의 변경 매개변수는 함수 몸체 내부에서 변수와 동일하게 취급되므로 매개변수 또한 타입에따라 값에 의한 전달, 참조에 의한 전달 방식을 그대로 따른다. //매개변수 primitive는 원시 값을 전달받고, 매개변수 obj는 객체를 전달받는다. function changeVal(primitive, obj){ primitive += 100; obj.name = 'Kim'; } //외부 상태 var num = 100; var person = {name: 'Lee'}; console.log(num);//100 console.log(person);//{name: "Lee"} //원시 값은 값 자체가 복사되어 전달되고 객체는 참조 값이 복사되어 전달된다. changeVal(num, pe.. 2022. 3. 14.
[JavaScript_DeepDive] 11. 원시 값과 객체의 비교 자바스크립트가 제공하는 7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 심벌, 객체 타입)은 크게 원시타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있고 크게 세가지 측면에서 다르다. 1. 원시 타입 값(원시 값)은 변경 불가능한 값(immutable value)이다. 그러나 객체(참조)타입의 값(객체)는 변경가능한 값(mutable value)이다. 2. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다. 3. 값에 의한 전달(pass by value)은 원시 값을 갖는 변수는 다른 변수에 할당하면 원본의 원시.. 2022. 3. 13.
[JavaScript_DeepDive] 10. 객체 리터럴 자바스크립트는 객체(object)기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 "모든 것"이 객체다. 원시값을 제외한 나머지 값(함수, 배열, 정규 표현식 등)은 모두 객체다. 원시 타입은 단 하나의 값만 나타내지만 객체타입(object/reference type)은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조(data structure)다. 또한 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)이짐나 객체 타입의 값, 즉 객체는 변경 가능한 값(mutable value)이다. -객체는 0개 이상의 프로퍼티로 구성된 집합이며. 프로퍼티는 키(key)와 값(value)로 구성된다. -자바스크립트에서 사용할 수 있는 모든 값은.. 2022. 3. 13.
[JavaScript_DeepDive] 9. 타입 변환과 단축 평가 //심벌타입 (Symbol()) + '' //TypeError : Cannot convert a Symbol value to a string //객체타입 ({}) + ''//"[object Object]" Math + ''//"[object Math]" [] + ''//"" [10, 20] + ''//"10, 20" (function(){}) + ''//"function(){}" Array + ''//"function Array() { [native code] }" #타입변환이란? -자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. -개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환(explicit coercion)또는 타입 캐스팅(t.. 2022. 3. 12.