変数が関数、オブジェクトまたは配列であるとしましょう。Javascript:変数が関数、配列またはオブジェクトであるかどうかを確認する最も効率的な方法
私はそれを決定する最も効率的な方法を見つけたいと思っています。
私はそれが他の変数(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
なぜあなたは '[]'が配列ではないと思いますか?また、あなたは '?真:偽」。 – SLaks
''未定義 ''、 ''ヌル ''、 '<1'、' 'NaN''は' 'ブール'私はあなたが欲しいものを理解していない...より具体的にしてください。 –
なぜあなたは知る必要がありますか? JavaScriptは強く型付けされた言語ではありません。状況に応じてチェックし、オブジェクト*があなたが期待するオブジェクトのように見えるのはなぜですか? – Pointy