Javascript var-myVar;在Chrome中返回HtmlLevel,但在FF中不返回?

Javascript var-myVar;在Chrome中返回HtmlLevel,但在FF中不返回?,javascript,firefox,google-chrome,Javascript,Firefox,Google Chrome,我试图在脚本的第一行设置一个变量,以便以后可以访问它(并检查它是否未定义)。代码的基本要点是: var map; var mapIsVisible = false; console.log(map); function clearMap() { if(map != undefined) { map.clear(); } } clearMap(); 所以在FF中,它工作得非常完美。没有任何错误。Chrome会抛出一个错误,上面写着: Uncaught TypeError:

我试图在脚本的第一行设置一个变量,以便以后可以访问它(并检查它是否未定义)。代码的基本要点是:

var map;
var mapIsVisible = false;

console.log(map);

function clearMap() {
  if(map != undefined) {
    map.clear();
  }
}

clearMap();
所以在FF中,它工作得非常完美。没有任何错误。Chrome会抛出一个错误,上面写着:

Uncaught TypeError: Object #<HTMLDivElement> has no method 'clear'
我的脚本运行良好。我想知道的是为什么Chrome会出现这种情况

编辑
正如回答中所说,我确实有一个id为“map”的元素。我不知道他们会为此自动添加JS变量。

你的页面上可能有一个
,chrome认为你在用“map”引用它您使用的变量。

您的页面上可能有一个
,chrome认为您使用的“map”变量引用了该变量。

我猜您的页面上有一个元素的
名称或
id
属性为“map”我似乎记得id元素在Chrome中自动成为全局JS变量。天知道为什么。

我猜你的页面上有一个元素的
名称
id
属性为“map”我似乎记得id元素在Chrome中自动成为全局JS变量。天知道为什么。

不仅仅是这个,其余的代码是什么样子的。不仅仅是这个,其余的代码是什么样子的。不知道Chrome会这样做……我甚至怀疑上帝知道为什么。所有浏览器都会这样做……在某种程度上.Gecko只在“怪癖”模式下运行。请参阅规范讨论,例如它是。是的,这一定是它。我确实有一个id为“map”的元素,但我不知道Chrome(或其他浏览器)自动成为JS变量。感谢Boris的良好阅读!不知道Chrome会这样做…我甚至怀疑上帝知道为什么。所有浏览器都会这样做…在某种程度上。Gecko只在怪癖模式下这样做。请参阅规范讨论,例如它是。是的,这一定是它。我确实有一个id为“map”的元素但我不知道Chrome(或其他浏览器)会自动变成JS变量。多亏了Boris的阅读!
var map = undefined;