注意 :从ECMAScript版本3或5的角度提出了此问题。随着ECMAScript 6版本中引入新功能,答案可能会过时。
varJavaScript中关键字的功能到底是什么,它们之间有什么区别
var
var someNumber = 2; var someFunction = function() { doSomething; } var someObject = { } var someObject.someProperty = 5;
和
someNumber = 2; someFunction = function() { doSomething; } someObject = { } someObject.someProperty = 5;
?
您什么时候会使用其中一个?为什么/会做什么?
如果您位于全球范围内,则没有太大区别。
如果您在函数中, var 则将创建一个局部变量,“ no var”将查找作用域链,直到找到该变量或达到全局作用域为止(此时将创建该变量):
// These are both globals var foo = 1; bar = 2; function() { var foo = 1; // Local bar = 2; // Global // Execute an anonymous function (function() { var wibble = 1; // Local foo = 2; // Inherits from scope above (creating a closure) moo = 3; // Global }()) }
如果您不做作业,则需要使用var:
var x; // Declare x