注意*:这个问题是从 ECMAScript 版本 3 或 5 的角度提出的。随着 ECMAScript 6 版本中新功能的引入,答案可能会变得过时。*
JavaScript中关键字的作用到底是var什么,两者有什么区别
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