arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.
function myConcat(separator) {
var args = Array.prototype.slice.call(arguments, 1);
return args.join(separator);
}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments
function isEmptyObj(obj) {
if(obj.constructor === Object && Object.keys(obj).length === 0) {
return true;
}else{
return false;
}
}
obj.constructor === Object
데이터가 객체인지 체크하기 위해서 constructor를 체크하였습니다.
Object.keys(obj).length === 0
Object.keys() 함수는 파라미터로 입력받은 객체의 key 목록을 배열로 리턴합니다.
typeof를 사용하여 배열을 검사하면, 배열은 'object'를 나타낸다. 배열은 'object'의 특수한 한 형태이기 때문입니다.
따라서, typeof만으로는 객체가 배열인지 확인할 수 없습니다.객체가 배열인지 확인하기 위해서는 isArray()
함수를 사용해야 합니다.
Array.isArray(obj) // return `true` or `false`
JavaScript에는 '없음'를 나타내는 값이 두 개 있는데, 바로 null
와 undefined
입니다.
두 값의 의미는 비슷하지만, 각각이 사용되는 목적과 장소가 다릅니다.
typeof null // 'object'
typeof undefined // 'undefined'
비록 undefined
가 '없음'을 나타내는 값일지라도, 대입한 적 없는 변수 혹은 속성과, 명시적으로 '없음'을 나타내는 경우를 구분을 할 수 있어야 코드의 의미가 명확해 질 것입니다. 명시적으로 '없음'을 나타내고 싶다면 항상 null을 사용하는 것이 좋습니다.
==
를 사용하는 것이 편합니다. 다른 모든 경우에는 ===
를 사용하는 것이 좋습니다. ==
연산자는 한 쪽 피연산자에 null
혹은 undefined
가 오면 true
를 반환, 다른 모든 경우에 false
를 반환합니다.null === undefined; // false
null == undefined; // true