JavaScript - WeakMap 的 has() 方法



在 JavaScript 中,WeakMap.has() 方法用于验证 WeakMap 对象中是否存在具有指定键的元素。

此方法将元素的“键”作为参数,以验证它是否存在于 Map 对象中,并返回布尔值作为结果。如果 Map 中存在指定的键,则返回“true”。否则,返回“false”。

如果 Map 中存在键并且键值对中的相应值为“undefined”,WeakMap.has() 方法仍然返回“true”。

语法

以下是 JavaScript WeakMap.has() 方法的语法:

has(key)

参数

此方法只接受一个参数。具体描述如下:

  • key − 在 WeakMap 中搜索的键。

返回值

此方法返回布尔值作为结果。

示例

示例 1

在下面的示例中,我们使用 JavaScript WeakMap.has() 方法检查 WeakMap 中是否存在具有指定键 ('key1') 的元素:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = {};
      let key2 = {};
      
      weakMap.set(key1, "apple");
      weakMap.set(key2, "banana");
      
      document.write(weakMap.has(key1));
   </script>
</body>
</html>

上述程序返回“true”,因为键“key1”存在于 WeakMap 中。

示例 2

在这里,我们尝试检查一个具有指定键'key2'的元素,该元素不存在于 WeakMap 对象中:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = {};
      let key2 = {};
      
      weakMap.set(key1, "apple");
      
      document.write(weakMap.has(key2));
   </script>
</body>
</html>

上述程序返回“false”,因为键“key2”不存在于 WeakMap 中。

示例 3

在这个示例中,WeakMap 具有键 'key1',其值为 'undefined':

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = {};
      let key2 = {};
      
      weakMap.set(key1, undefined);
      weakMap.set(key2, "banana");
      
      document.write(weakMap.has(key1));
   </script>
</body>
</html>

上述程序返回 true,因为 'key1' 存在,即使其值为 undefined。

示例 4

如果不对 get() 方法传递任何参数,则返回“false”作为结果:

<html>
<body>
   <script>
      let weakMap = new WeakMap();
      let key1 = {};
      let key2 = {};
      
      weakMap.set(key1, "apple");
      weakMap.set(key2, "banana");
      
      document.write(weakMap.has());
   </script>
</body>
</html>

如果我们执行上述程序,它将返回“false”作为结果。

广告