首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript是否将HTML-ID识别为“已定义”?

javascript是否将HTML-ID识别为“已定义”?
EN

Stack Overflow用户
提问于 2018-06-04 01:03:27
回答 1查看 37关注 0票数 0

我尝试通过检查是否定义了特定的变量来读取JavaScript的当前状态:

if (app!=未定义) {...}

令我惊讶的是,app最终被定义并引用了DOM中具有id="app“的元素。

一旦JavaScript设置了自己的变量,这个引用就消失了。删除变量将返回dom-reference。

怎么回事?或者,给出一个更具体的问题:为什么会这样,它是如何定义的,如果变量没有定义,那么我如何检查该变量的存在,而不管DOM中包含哪些ID?

埃塔:https://jsbin.com/jehoxodeqi/edit?html,output

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>scope test</title>
</head>
<body>

<script  type="text/javascript">
 console.log ("--1");
 try {
 console.log (domId);
 }
 catch (e) {
    console.log (e);
 }


      if (typeof domId === 'undefined' || !domId) {
    console.log ("desired behavour.");
  }

</script>

<div id="domId">DOM ID 1</div>


<script  type="text/javascript">

console.log ("--2");
if (typeof domId === 'undefined' || !domId) {
    console.log ("desired behavour... alas, it is defined.");
  }
    console.log (domId);

  if (typeof domId === 'undefined' || !domId) {
    console.log ("desired behavour... alas, it is defined.");
  }

    domId = "some String";
    console.log ("--3");
    console.log (domId);

    delete domId;
    console.log ("--4");
    console.log (domId);

    domId.remove();
    console.log ("--5");
    try {
 console.log (domId);
 }
 catch (e) {
    console.log (e);
 }

    console.log ("-- end --");
</script>
</body>
</html>

这显示了我最初一直在尝试做的事情。

我希望变量只在我实际在代码中声明它时才被定义。那么,这背后有什么目的吗?如果有,为什么变量名称空间会被DOM动态重载?

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 01:07:05

如果您检查一个没有通过简单地调用它的名称来定义的变量,您将得到一个错误。

代码语言:javascript
复制
alert(foo); //error if not defined

你能做的就是检查它的父命名空间。对于全局变量,这意味着window。这不会出错,因为它将被解释为对属性的请求,而未定义的属性返回时未定义,而不是错误。

代码语言:javascript
复制
alert(window.foo); //undefined
foo = 'bar';
alert(window.foo); //'bar'
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50668875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档