zoukankan      html  css  js  c++  java
  • 处理集合_key相等

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>key相等</title>
        <script src="../unitl/test.js"></script>
        <style>
            #results li.pass {color:green;}
            #results li.fail {color:red;}
        </style>
    
    
    </head>
    
    <body>
    
    
        <div id="firstElement"></div>
        <div id="secondElement"></div>
        <ul id="results"></ul>
    
    
    </body>
    
    <script>
    
    
        const map = new Map();
        //使用内置的location.href属性获取当前页面的URL.
        const currentLocation = location.href;
    
        //创建两个当前页面的连接
        const firstLink = new URL(currentLocation);
        const secondLink = new URL(currentLocation);
    
    
        //分别为两个链接添加映射。
        map.set(firstLink,{description:"firstLink"});
        map.set(secondLink,{description:"secondLink"});
    
    
    
        //尽管两个连接指向相同的值,但是仍然具有各自的映射。
        assert(map.get(firstLink).description === "firstLink","First link mapping");
        assert(map.get(secondLink).description === "secondLink","Second link mapping");
    
    
        assert(map.size ===2,"There are two mappings!");
    
      
    
    
    </script>
    </html>
    

    本例子中引入的js: test.js
    在本例子中使用location.href属性获取当前页面的URL。然后URL构造函数创建两个URL当前页面连接的对象。接着每个链接对象关联描述信息。最后,检查映射是否正确创建。
    两个不同的对象创建不同的映射,但是,两个url对象指向相同的URL地址:当前页面的地址。我们也会怀疑两个对象应该相等。但是,在javascript中,我们不能重载相等运算符,虽然两个对象的
    内容相同,但是两个对象仍然不想等。这与其他语言不同,如java,C#等,要小心!。

  • 相关阅读:
    vue计算属性和方法的区别
    函数防抖和函数节流
    vue项目使用keep-alive
    hash模式与history模式
    Vue中的计算属性
    MVVM的理解和Vue的生命周期
    session和cookie的区别
    localStorage和sessionStorage区别
    try catch finally的理解
    《Linux命令学习手册》系列分享专栏
  • 原文地址:https://www.cnblogs.com/jamal/p/14084565.html
Copyright © 2011-2022 走看看