This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The has() method of WeakMap instances returns a boolean indicating whether an entry with the specified key exists in this WeakMap or not.
const weakmap = new WeakMap();
const object1 = {};
const object2 = {};
weakmap.set(object1, "foo");
console.log(weakmap.has(object1));
// Expected output: true
console.log(weakmap.has(object2));
// Expected output: false
has(key)
Returns true if an entry with the specified key exists in the WeakMap object; otherwise false. Always returns false if key is not an object or a non-registered symbol.
const wm = new WeakMap();
wm.set(window, "foo");
wm.has(window); // returns true
wm.has("baz"); // returns false
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
has |
36 | 12 | 6Before Firefox 38, this method threw aTypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard. |
23 | 8 | 36 | 6Before Firefox for Android 38, this method threw aTypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard. |
24 | 8 | 3.0 | 37 | 8 | 1.0.0 | 1.0 | 0.12.0 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/has