본문 바로가기

프로그래밍 언어

(87)
JAVA script 참조와 복제 var a = {‘num’ : 1}; var b = a; b.num = 2; console.log(a.num); > 2 위 코드에서 변수 a는 {‘num’ : 1};을 통해 새로운 객체를 생성하여 그를 가리키고 있고, 변수 b는 그런 a를 참조한다. 이 상태는 a와 b가 서로 같은 객체 num : 1을 가리키는 형태이다. 이때, b를 통해 속성 값을 바꾸면 b가 가리키는 객체의 값을 바꾸게 되는데, 이때 바뀐 객체는 a또한 참조하고 있는 객체였기에 a.num도 값이 바뀐다. 하지만 아래 코드는 얘기가 달라진다. var a = {‘num’ : 1}; var b = a; var b = {‘num’ : 2}; console.log(a.num); > 1 a변수는 num : 1이라는 객체를 참조하고 b또한 그런 ..
JAVA script 레퍼 객체 var str = ‘coding’; str.prop = ‘hello world’; console.log(str.prop); 위 코드의 2행은 오류가 나지 않는다. 분명히 문자열은 객체가 안닌 원시 데이터 타입이라 했는데, 객체처럼 사용하는 문법이 에러가 나지 않는다는 것이 의아했다. 사실 이는 js에서 제공하는 레퍼 객체이다. 객체가 아닌 것을 객체처럼 사용하려 할 때, js에서 내부적으로 객체화 시켜준다. 허나 위 코드 3행의 결과는 undefined가 되는데, 이는 내부적으로 객체화한 문자열이 실제 객체의 역할을 하지 못하고 없어져버리기 때문이다. 지난 글에서 배운 5가지의 원시 데이터 타입중 객체화가 되는 데이터 타입은 number, string, boolean이며, null이나 undefined는..
JAVA script 원시 데이터 타입 데이터 타입이란 데이터의 형태를 의미한다. 이런 데이터 타입은 크게 두 가지로 나눌 수 있다. 바로 객체와 객체가 아닌 데이터 타입이다. 오늘은 객체가 아닌 데이터 타입인 원시 데이터 타입에 대해 알아볼 것이다. 객체가 아닌 데이터 타입은 아래와 같다. * Number * String * Boolean * null * undefined
JAVA script hasOwnProperty for in 문을 사용해 document.write 혹은 console.log를 사용했을 때, object.prototype 이하의 메서드는 표시가 되지 않게 혹은 어떤 함수가 어느 객체의 직접적인 소유인지를 확인할 때 사용할 수 있는 메서드 hasOwnProperty의 사용법. 사진 출처 : 생활코딩:/javascript/참조(1/3)
JAVA script 표준 내장 객체 종류 Object Function Array String Boolean Number Math Date RegExp
JAVA script prototype 프로토타입은 자바 스크립트의 객체의 속성이다. 스크립트에서는 프로토타입을 통해 상속을 제공한다. function Ultra(){} Ultra.prototype.ultraProp = true; function Super(){} Super.prototype = new Ultra(); function Sub(){} Sub.prototype = new Super(); var o = new Sub(); console.log(o.ultraProp); > true 위처럼 프로토타입으로 엮여있는 것을 프로토타입 체인 (Prototype chain)이라 한다.
JAVA script apply function sum(arg1, arg2) { return arg1 + arg2; } sum.apply > function apply() { [native code] }//내장 코드 sum.apply(null, [1, 2]); > 3 sum.apply(null, [4, 2]); > 6 위처럼 함수를 호출할 수도 있지만, apply는 첫 번째 인자에 null이 아닌 다른 값을 넣을 때만 사용하도록 한다. (null을 넣을 때는 사용을 지양) ———————————————————————- o1 = {val1 : 1, val2 : 2, val3 : 3} o2 = {v1 : 10, v2 : 50, v3 : 100, v4 : 25} function sum() { var _sum = 0; for(name in th..
JAVA script 매개변수 function one(arg1) { console.log( ‘one.length’, one.length, ‘arguments’, arguments.length ); } one(‘ val1’, ‘val2’); //one.length = 1 //arguments.length = 2 - one(함수)의 길이가 1인 이유는 one.length는 “함수가 매개변수로 정의한 매개변수의 숫자”를 의미한다. - 하지만 arguments의 길이가 2인 이유는 arguments.length는 매개변수의 숫자가 중요하지 않고, “그 함수를 호출할 때 몇 개의 인자를 입력했는가”에 대한 정보를 담는다.