— javascript — 1 min read
1var obj = new Object(); // Object 객체 생성2var objLiteral = {}; // Object 리터럴34// 생성자가 같은 native code를 가리키고 있다.5console.log(obj.constructor);6console.log(objLiteral.constructor);78// 둘 다 object 를 가리킨다.9console.log(typeof obj);10console.log(typeof objLiteral);
1var func = new Function('x', 'y', 'return x*y'); // Function 객체 생성2var funcLiteral = function(x, y) { // Function 리터럴3 return x*y;4};56// 생성자가 같은 native code를 가리키고 있다.7console.log(func.constructor);8console.log(funcLiteral.constructor);910// 둘 다 function을 가리킨다.11console.log(typeof func);12console.log(typeof funcLiteral);
Array.isArray()
를 사용한다. (참고)1var arr = new Array();2var obj = new Object();34console.log(Array.isArray(arr)); // true5console.log(Array.isArray(obj)); // false67// 함수의 arguments 는 배열이 아니므로 Array.isArray 는 false 다8(function(arg1, arg2) {9 console.log(arguments);10 console.log(Array.isArray(arguments));11})('arg1', 'arg2');
1var arrayObj = new Array('foo', 'bar'); // Array 객체 생성2var arrayLiteral = ['foo', 'bar']; // Array 리터럴34// 생성자가 같은 native code를 가리키고 있다.5console.log(arrayObj.constructor);6console.log(arrayLiteral.constructor);78// 둘 다 object 를 가리킨다.9console.log(typeof arrayObj);10console.log(typeof arrayLiteral);
1var stringObj = new String('str'); // String 객체 생성2var stringLiteral = 'str'; // String 리터럴. 따옴표안에 문자열을 넣으면 된다.34// 생성자가 같은 native code를 가리키고 있다.5console.log(stringObj.constructor);6console.log(stringLiteral.constructor);78// 리터럴은 string을 가리키고 객체는 object를 가리킨다.9console.log(typeof stringObj);10console.log(typeof stringLiteral);
1..toString()
는 문법적으로 오류가 없다. 첫번째 점이 10진수 솟자임을 알리는 용도로 사용되었기 때문이다.1var numberObj = new Number(23); // Number 객체 생성2var numberLiteral = 23; // Number 리터럴. 숫자만 입력하면 된다.34// 생성자가 같은 native code를 가리키고 있다.5console.log(numberObj.constructor);6console.log(numberLiteral.constructor);78// 리터럴은 number를 가리키고 객체는 object를 가리킨다.9console.log(typeof numberObj);10console.log(typeof numberLiteral);
new Boolean(false)
는 객체로 인식하기 때문에 true 이다.1var booleanObj = new Boolean(true); // Boolean 객체 생성2var booleanLiteral = true; // Boolean 리터럴. true나 false를 넣으면 된다.34// 생성자가 같은 native code를 가리키고 있다.5console.log(booleanObj.constructor);6console.log(booleanLiteral.constructor);78// 리터럴은 boolean을 가리키고 객체는 object를 가리킨다.9console.log(typeof booleanObj);10console.log(typeof booleanLiteral);
1var numbersConstructor = new RegExp('\\d+','g'); // 생성자를 이용해서 정규표현식 생성2var numbersLiteral = /\d+/g; // 리터럴을 이용해서 정규표현식 생성 34console.log(numbersConstructor);5console.log(numbersLiteral);
1var regExp = new RegExp('\bt[a-z]+\b'); // RegExp 객체 생성2var regExpLiteral = /\bt[a-z]+\b/; // RegExp 리터럴34// 생성자가 같은 native code를 가리키고 있다.5console.log(regExp.constructor);6console.log(regExpLiteral.constructor);78// 둘 다 object를 가리킨다.9console.log(typeof regExp);10console.log(typeof regExpLiteral);