<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没有显示未定义吗?

#1楼 票数:3

name 是全局变量,请尝试:

console.log(window);

你会看到它有name属性。这就是为什么它不是未定义的。

#2楼 票数:1

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

因此,在您的情况下,调用name等于window.name ,默认情况下它是一个空字符串。 为了避免这种副作用,建议使用 ES6 let/const变量声明。

 let name; console.log(name);

结果将是undefined因为在这种情况下name未附加到全局对象。

  ask by susmitha translate from so

未解决问题?本站智能推荐:

2回复

谁能解释为什么我在这个leetcode问题上得到未定义的输出?

再次回到另一个 leetcode 问题。 我无法让我的函数或我的 for each 循环返回一个值,当我这样做时它仍然显示为未定义 您的输入“()” 输出未定义 预期为真感谢您的帮助。
1回复

任何人都可以解释为什么这个IIFE传入参数会像未定义那样改变范围内的变量?[复制]

这个问题在这里已经有了答案: 在 Javascript 中覆盖 undefined 和 IIFE (3 个回答) 去年关闭。 任何其他不涉及 undefin
3回复

eval返回变量名而不是未定义。(javascript)

更新函数/类的代码存储在字符串中,这就是为什么我不能直接调用它的原因。 想法是对对象进行自省,并枚举其数据成员,该对象在作为函数时起作用,但在评估如下变量时不起作用。 我正在尝试评估javascript中的对象。 这样的事情。 这个想法是要能够在eval中运行它并以某种方式获取变量名
3回复

谁能解释为什么我在Javascript中遇到此错误?[无法读取未定义的属性'length']

这是我的代码: 每次运行它时,我都会收到以下错误消息:“ TypeError:无法读取iqTest上未定义的属性'length'”。 谁能向我解释如何解决此错误。 我不明白为什么我的代码中未定义任何对象。 我所做的每个var声明都是完整的。 我以为只有在我写了类似“ var a”之类
1回复

为什么我得到变量值而不是变量名的“属性或方法未定义”?

我有一个VueJS组件,如果我通过静态文本可以使用,但是如果我尝试绑定变量值,则会收到“此实例未定义属性或方法”。 但是,与其说是未定义的属性,不如说是“未定义”属性的变量值。 如果有的话,我希望会有一个错误,说“文本框”未定义。 我不明白为什么老师的评论是“未定义的”? 错误的屏幕
1回复

Urql错误:无法读取未定义变量名的属性,我正确定义了它

这是我的问题: 'GraphQuery' 变量是一个看起来像这样的对象 在接受变量的操场上的 graphql 查询看起来像这样 但我不断收到的错误是
3回复

未定义为本地范围内的有效变量名

我曾考虑过声明一个undefined的变量,并用它评估一个真实的if-else表达式。 我发现在全球范围内是不可能的。 但是在MDN中,我发现了一些有关undefined数据类型的有趣见解。 我直接从MDN报价 undefined是全局对象的属性; 即,它是全局范围内的变量。
2回复

仅在FirefoxjQuery上出现JavaScript错误。延迟的例外:变量名未定义

我只在Firefox上收到一个奇怪的错误。 事情可以在包括IE在内的所有其他浏览器上正常运行。 我得到的错误是 jQuery.Deferred异常:首先是未定义 问题似乎与修剪功能有关。 如果我尝试仍然会出现,