当前位置: 首页 > 知识库问答 >
问题:

你能解释为什么变量名不显示我未定义吗?[重复]

宰烈
2023-03-14
html lang-html prettyprint-override"><script>
  var name;
  var marks;
  var pass_status=true;
  document.writeln("name are:"+name);
  document.writeln("pass status is:"+pass_status);
  document.writeln("marks are:"+marks);
</script>

你能解释为什么变量name不显示我未定义吗?

共有2个答案

锺离浩慨
2023-03-14

如果在任何函数外部声明var变量,则会将其分配给全局对象,这意味着浏览器内部的window。由于namewindow的标准属性,因此它在执行代码片段之前就已经存在了。检查https://developer.mozilla.org/en-US/docs/Web/API/Window/name

因此,在您的情况下,调用name等于窗口。名称,默认为空字符串。为避免此类副作用,建议使用ES6let/const变量声明。

let name;
console.log(name);
濮阳钟展
2023-03-14

name是全局变量,试一下:

console.log(window);

您将看到它具有name属性。这就是为什么它不是未定义的。

 类似资料:
  • 我有财产课: 还有一种方法: 在类的构造函数我有: 为什么当我从object按键调用函数时。我收到一条未定义的消息,为什么变量在内部不可用:

  • 我希望有动态的logback appender属性,可以很容易地添加到logback配置文件中,但是试图设置appender的类和名称(它们在xml属性中,而不是appender元素下的元素中)。 以下是我的application.yml(为示例硬编码了值,但在实际用例中,在部署到K8s集群期间,这些值将作为env变量从Helm传递): 下面是我如何访问logback-spring.xml(spr

  • 我正在构建一个计算Java字符串中重复值的程序。然而,我收到“我无法解析为变量”,即使它是在for循环中初始化的?感谢您的指导。

  • 声明这样的对象时: 它抛出以下错误: 但是,使用任何其他变量名(例如,)都可以正常工作。为什么?

  • 在研究了如何在自定义注释方法之前和之后调用代码之后,我决定为此使用Spring AOP。 所以我把Config添加到我的pom.xml中 但当我在调试模式下执行测试时...

  • 我有这行代码在PHP中读取一个文件的CSV格式与MySQL数据库的结构,并显示创建它所需的SQL代码。我在这里遇到的唯一问题是,我不能打印出主键变量,因为它说它没有定义,即使我之前定义了它。有人能帮我解释一下为什么会出现这个错误吗?这是我的代码: