본문 바로가기

분류 전체보기

(64)
[JavaScript] 참조에 의한 전달과 외부 상태의 변경 원시 값 : 값에 의한 전달 객체 : 참조에 의한 전달 // 매개변수 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, person); // 원시값은 원본이 훼손되지 않는다. console.log(num); // 100 // 객체는 원본..
[모던자바스크립트 Deep Dive] 12. 함수 함수란? 프로그래밍 언어에서 함수는 일련의 과정을 문으로 구현하고 코드블록으로 감싸서 하나의 실행 단위로 정의한 것을 의미한다. 변수 : 함수 내부로 입력을 전달받는 변수 입력하는 값 : 인수 반환 값 : 출력 값 ※함수는 값이고 여러개 존재할 수 있다. => 식별자인 함수 이름 사용가능! function add(x,y) {//add => 함수 이름, x,y => 매개변수 return x + y;// x + y => 반환 값 } add(2,5)//2,5 => 인수 함수는 함수 정의를 통해 생성하는데 함수를 정의하는 것만으로 실행되는 것이 아니라 함수의 실행을 명시적으로 지시해야 한다. // 함수 정의 function add(x, y) { return x + y; } 명시적으로 함수 실행을 지시하는 것을 ..
[모던자바스크립트 Deep Dive] 11. 원시값과 객체의 비교 자바스크립트의 데이터 타입 원시타입 : 숫자, 문자열, 불리언, null, undefined, 심볼 객체 타입 : 객체 원시타입과 객체타입의 차이 원시 타입의 값(원시 값)은 변경 불가능한 값이나, 객체 타입의 값(객체)은 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장되나 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장된다. 원시 값을 갖는 변수는 다른 변수에 할당 할 때 값에 의한 전달이고, 객체는 참조에 의한 전달이다. 1.원시 값 원시 타입의 값은 변경 불가능한 값으로 한번 생성된 원시 값은 읽기 전용으로서 변경할 수 없다. 원시 값의 불변성은 값에 대한 말이지 변수에 대한 말이 아닌 것에 주의 하자! 원시값은 읽기 전용 값이기에..
[모던자바스크립트 Deep Dive] 10. 객체 리터럴 1. 객체란 자바스크립트는 객체기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 '거의 모든 것'이 객체이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 여기에선 함수도 프로퍼티 값이 될 수 있는데(함수가 일급 객체이므로), 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라고 부른다. //counter 객체 var counter = { num : 0, //프로퍼티 increase : function() { //메소드 this.num++; } }; 프로퍼티 : 객체의 상태를 나타내는 값(data) 메서드 : 프로퍼티를 참조하고 조작할 수 있는 동작(behavior) 객체는 객체의 상..
[백준] 스택 - 파이썬 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보..
[모던자바스크립트 Deep Dive] 옵셔널 체이닝 연산자와 null 병합 연산자 옵셔널 체이닝(Optional Chaining) 연산자 - ?. 옵셔널 체이닝(Optional Chaining) 연산자란 ES11에서 도입되었는데 좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고, 그렇지 않으면 우항의 프로퍼티의 참조를 이어간다. var elem = null; //elem이 null 또는 undefined이면 undefined를 반환하고, 그렇지 않다면 우항의 프로퍼티 참조를 이어간다 var value = elem.value; console.log(value)//undefined 옵셔널 체이닝 연산자 ?.는 객체를 가르키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 참조할 때 유용하다! 옵셔널 체이닝 연산자는 좌항의..
[모던자바스크립트 Deep Dive] 9.4 단축평가 단축평가란 논리곱(&&) 연산자와 논리합(||)를 이용해 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지평가 과정을 생략하는 것을 의미한다. //논리합(||) 연산자 "Cat" || "Dog" // "Cat" false || "Dog" // "Dog" "Cat" || false // "Cat" //논리곱(&&) 연산자 "Cat" && "Dog"// "Dog" false && "Dog"// false "Cat" && false// false 단축 평가는 다음의 두 가지 경우에서 유용하게 사용된다. 객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고 프로퍼티를 잠조할 때 함수 매개변수에 기본값을 설정할 때 객체를 가리키기를 기대하는 변수가 null 또는 undefin..
[모던자바스크립트 Deep Dive] 변수(Variable) 1. 변수 자바스크립트에서 변수란 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 쉽게 설명해서, 프로그래밍 언어에서 변수는 값을 저장하고 참조하는 매커니즘으로 값의 '위치'를 가르키는 상징적인 이름이다. 변수이름 or 변수 명 : 메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름 변수 값 : 변수에 저장된 값 할당 : 변수에 값을 저장하는 것 참조 : 변수에 저장된 값을 읽어 들이는 것 2. 식별자 변수 이름을 식별자라고도 하는데, 식별자란 '어떤 값을 구별해서 식별할 수 있는 고유한 이름'을 뜻한다. 식별자 특징 식별자는 값 자체가 아닌 값이 저장된 주소를 기억하고 있다. 식별자라는 용어는 변수 이름에만 국한되지 않으며 변수, 함수,..