Javascript:Uncaught ReferenceError:tb未定义

Javascript:Uncaught ReferenceError:tb未定义,javascript,html,Javascript,Html,app.js "use strict"; var tb = { rahmen: { eigenschaften: [ "hochwertig", "verwindungssteif", "vergleichsweise verwindungssteif", "sehr verwindung

app.js

"use strict";
var tb = {
    rahmen: {
        eigenschaften: [
            "hochwertig",
            "verwindungssteif",
            "vergleichsweise verwindungssteif",
            "sehr verwindungssteif",
            "sehr hohe Verwindungssteifigkeit",
            "hohe Steifigkeit"
        ]
    }
};
index.html

<!DOCTYPE html>
<html lang="en">
<head>
  ((Some Head-Tags))
  <script src="dist/app.js" defer></script>
  ((Some Head-Tags))
</head>
<body>
  <div class="container">
    <section>
      <h1>Test</h1>
      <script>
        console.log(tb.rahmen.eigenschaften[3]);
      </script>
    </section>
  </div>
</body>
</html>

((一些头部标签))
((一些头部标签))
试验
log(tb.rahmen.eigenschaften[3]);
错误消息 未捕获引用错误:未定义tb

问题 这一定很简单,但读了很多帖子后我还是不知道。 为什么我的Javascript对象仍然没有定义

对不起,关于垃圾场的问题。 谢谢
Musa

错误的原因是您在
script
标签上为
app.js
添加了
defer
,因此代码在解析完所有HTML之后才会运行。但是您尝试使用
tb
的内联
脚本
不会延迟,因此它会在遇到时立即运行,这是在HTML解析期间,因此是在运行
app.js
之前

说明延迟内容的规范,以及此类内容:

我建议将所有逻辑保留在
app.js
中,并删除第二个
脚本。如果需要使用脚本在那里添加内容,请在解析HTML后通过DOM进行添加

例如,如果要在此处添加内容:

app.js

“严格使用”;
变量tb={
拉赫曼:{
伊格森沙夫滕:[
“hochwertig”,
“verwindungssteif”,
“vergleichsweise verwindungssteif”,
“sehr verwindungssteif”,
“这是我的梦想”,
“hohe Steifigkeit”
]
}
};
document.getElementById(“主要部分内容”).textContent=tb.rahmen.eigenschaften[3];
index.html


((一些头部标签))
((一些头部标签))
试验

请注意,现在只有一个
脚本
,它在加载时工作。

删除延迟。这将有助于解决问题。

您推迟加载标题中的
app.js
。尝试删除
延迟
。谢谢您的图片。这对我帮助很大。同时也感谢所有其他的答案!你们太棒了,伙计们!