Check if a value is a plain JavaScript object
$ npm install @risan/is-plain-objThe library is available over a CDN:
<script src="https://unpkg.com/@risan/is-plain-obj@latest/dist/is-plain-obj.umd.js"></script> <!-- Or the minified version --> <script src="https://unpkg.com/@risan/is-plain-obj@latest/dist/is-plain-obj.umd.min.js"></script>const isPlainObj = require("@risan/is-plain-obj"); // The following statements will return TRUE: isPlainObj({}); isPlainObj({ foo: "bar" }); isPlainObj(new Object()); isPlainObj(Object.create(null)); isPlainObj(Object.create({})); // The following statements will return FALSE: isPlainObj(undefined); isPlainObj(null); isPlainObj(true); isPlainObj(3.14); isPlainObj(NaN); isPlainObj(Infinity); isPlainObj("foo"); isPlainObj([1, 2, 3]); isPlainObj(new Date()); isPlainObj(new Set([1, 2, 3])); isPlainObj(new Map()); isPlainObj(new WeakMap()); isPlainObj(parseInt); class Person {} isPlainObj(new Person()); // FALSE const myFunction = () => "foo"; isPlainObj(myFunction); // FALSEIf you load the library directly on the browser, it's available under the isPlainObj name.
window.isPlainObj({ foo: "bar" }); // TRUE window.isPlainObj(new Date()); // FALSE