1. is(), JS값 비교 방법


is()

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1a627795-20b2-455f-b267-7d651e07e373/Untitled.png

const result = Object.is(10, "10");
console.log(result);//false

const one = {}, two = {}
console.log(Object.is(one, two));

⇒ one이 참조하는 메모리주소와 two가 참조하는 메모리주소는 다르다.

console.log((undefined == null));//true
console.log((undefined === null));//false
console.log(Object.is(undefined, null));//false
console.log((NaN === NaN));//false
console.log(Object.is(NaN, NaN));//true
console.log((NaN === 0/0));//false
console.log(Object.is(NaN, 0/0));//true

console.log((0 === -0));//true
console.log(Object.is(0, -0));//false
function check(data){
	if(Object.is(typeof data, "object")){
		console.log(data);
	} else {
		console.log("object 타입이 아님");
	}
};
check({value:10});//{value: 10}
check(200);//object 타입이 아님

2. 오브젝트 복사: assign(), 첫 번째 파라미터 작성, 두 번째 파라미터 작성


assign()

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e7634725-9a21-4808-8ada-b8f1140bf85d/Untitled.png

const sports = {
	event: "축구",
	player: 11
};
let dup = {};

Object.assign(dup, sports);
console.log(dup);//{event: 축구, player: 11}
try{
	const obj = Object.assign(null, {});
} catch(e){
	console.log("null 작성 불가");
};

const obj = Object.assign(100);
console.log(obj.valueOf());//100

⇒ 첫 번째 파라미터를 작성하지 않거나 null, undefined를 작성하면 TypeError

⇒ 첫 번째 파라미터에 Number를 작성하면 Number 인스턴스를 생성 후 파라미터 값 100을 [[PrimitiveValue]]에 설정 하여 인스턴스를 반환합니다. Boolean, String, Symbol도 동일합니다.