JavaScript - WeakMap has() 方法



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

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

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

语法

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


 has(key)

参数

此方法只接受一个参数。下面描述相同 -

  • key − 要在 WeakMap 中搜索的 key。

返回值

此方法返回 Boolean 值作为结果。

示例 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”,因为 WeakMap 中不存在键 “key2”。

示例 3

在此示例中,WeakMap 有一个值为 'undefined' 的键 'key1' -


<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' 存在,即使它的值未定义。

示例 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” 作为结果。