一尘不染

JavaScript var关键字的目的是什么?何时应使用(或省略)?

javascript

注意 :从ECMAScript版本3或5的角度提出了此问题。随着ECMAScript 6版本中引入新功能,答案可能会过时。

varJavaScript中关键字的功能到底是什么,它们之间有什么区别

var someNumber = 2;
var someFunction = function() { doSomething; }
var someObject = { }
var someObject.someProperty = 5;

someNumber = 2;
someFunction = function() { doSomething; }
someObject = { }
someObject.someProperty = 5;

您什么时候会使用其中一个?为什么/会做什么?


阅读 427

收藏
2020-04-22

共1个答案

一尘不染

如果您位于全球范围内,则没有太大区别。

如果您在函数中, 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
2020-04-22