함수, 객체 또는 배열 일 수있는 변수가 있다고 가정 해 봅시다.자바 스크립트 : 변수가 함수, 배열 또는 객체인지 확인하는 가장 효율적인 방법
나는 그것을 결정하는 가장 효율적인 방법을 찾고 싶습니다.
나는 다른 변수 (isArray, isObject)를 계산하고 싶지 않다는 것을 알고 있기 때문에 다음과 같은 방법으로 최적화되지 않았다고 생각합니다. isFunction = true
;
리소스를 최적화하기 위해 계산하는 순서는 무엇입니까? 은 3 항 연산을 사용합니까?
var isFunction,
isArray,
isObject;
var obj = function() {};
isFunction = (typeof obj === "function") ? true : false;
isArray = (obj.length > 0) ? true : false;
isObject = (typeof obj === "object") ? true : false;
console.log(isFunction , isArray , isObject); // true, false, false (the good way)
console.log(isFunction , isArray , isObject); // true, undefined, undefined
왜 []이 (가) 배열이 아니라고 생각합니까? 또한, 당신은'? true : false'. – SLaks
''불확실성 '을 파싱 할 때'undefined','null','<1','NaN'은 모두'false'와 같습니다. 네가 원하는 걸 이해하지 못한다 ... 좀 더 자세하게 말 해주세요. –
왜 당신은 그것을 알아야합니까? JavaScript는 강력한 형식의 언어는 아닙니다. 왜 상황을 점검하고 객체 *가 당신이 기대하는 종류의 객체처럼 보이는지 확인하는 것이 어떻습니까? – Pointy