javascript var或not var,有啥区别? [复制]
Posted
技术标签:
【中文标题】javascript var或not var,有啥区别? [复制]【英文标题】:javascript var or not var, what's the difference? [duplicate]javascript var或not var,有什么区别? [复制] 【发布时间】:2011-05-22 02:47:47 【问题描述】:可能重复:Difference between using var and not using var in javascript
大家好
声明var myVar;
带有var
关键字或声明myVar
没有它。
这对某些人来说可能是个愚蠢的问题,但我正在学习 javascript。
有时,在阅读其他人的代码时,我看到一些变量的声明没有前面的“var”。只是为了强调,这些变量甚至没有被声明为函数的参数。
那么声明变量时带或不带'var'关键字有什么区别呢?
非常感谢
【问题讨论】:
【参考方案1】:如果你不使用它,它可能是一个全局变量,或者在 IE 的情况下,它会爆炸。
在某些情况下你不需要它,例如,如果它是你所在函数的参数,它已经被声明了。 总是在任何其他情况下使用var
(其他情况是:除非您正在操作一个已经存在的变量)。无论需要在什么范围内定义,显式在那里定义。
【讨论】:
【参考方案2】:这都是关于范围界定的。从技术上讲,你可以省略 var 但考虑一下:
myVar = "stuff";
function foo()
myVar = "junk"; //the original myVar outside the function has been changed
function bar()
var myVar = "things" //A new scoped myvar has been created internal to the function
【讨论】:
你不能“在技术上忽略它”,一些浏览器允许,这是有区别的。执行此操作时 IE 会崩溃,这是理所当然的。 @Nick fair 评论,我说错了 哦,顺便说一句,我并不是建议你永远忽略 var,我只是说你可以侥幸逃脱。使用 var 使您的代码更易于阅读和调试,养成使用它的习惯。以上是关于javascript var或not var,有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript - 在 for 循环中使用 let 和 var 关键字声明迭代变量有啥区别? [复制]