代码之家  ›  专栏  ›  技术社区  ›  Michel

控制台.log如果变量不存在,则返回html元素

  •  0
  • Michel  · 技术社区  · 6 年前

    我完全搞不懂 console.log() 输出不存在的变量时。

    bon . 但控制台没有显示 "undefined" 如预期,但是 <div id="bon"> .

    <!DOCTYPE HTML>
    <html> 
    <head></head>
    <body>
       <div id="bon">a</div>
       <script>
          console.log(bon);
       </script>
    </body>
    </html>
    

    在Firefox、Chrome、Explorer 11、Edge和Safari中测试,他们都返回了:

    <div id=“bon”>

    将脚本更改为

    <script>
        function foo(){
            console.log(bon);
        }
        foo();
    </script>
    

    结果是一样的。

    只有这个

       <script>
          console.log(bon);
          var bon="not bon";
          console.log(bon);
       </script>
    

    未定义
    不是苯教

    我遗漏了什么吗?或者这是否意味着如果控制台找不到变量本身,它只会从DOM返回一个具有相同id的元素?

    编辑

    here . 现在人们可以使用id来引用全局空间中的HTML元素,而无需将它们分配给 var= . 但同时:不建议这样做。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gopal M    6 年前

    这是因为您有一个具有相同ID的Div标记,并且“bon”在页面的任何地方都没有被初始化。所以“bon”自动指向Div标签。