WeakMap.prototype.has()
Baseline Widely available
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.
Try it
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
Syntax
has(key)
Parameters
-
key - The key of the entry to test for presence in the
WeakMapobject. Object keys are compared by reference, not by value.
Return value
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.
Examples
Using has()
const wm = new WeakMap();
wm.set(window, "foo");
wm.has(window); // returns true
wm.has("baz"); // returns false
Specifications
Browser compatibility
| 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 |
See also
© 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