javascript - var 关键字的用途是什么以及何时应该使用它(或省略它)?

标签 javascript keyword ecmascript-5

NOTE: This question was asked from the viewpoint of ECMAScript version 3 or 5. The answers might become outdated with the introduction of new features in the release of ECMAScript 6.

JavaScript中var关键字的作用到底是什么,有什么区别

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

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

您什么时候会使用其中任何一个,为什么/它有什么作用?

最佳答案

如果您处于全局范围内,则没有太大区别。阅读 Kangax's回答解释

如果你在一个函数中,那么 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

关于javascript - var 关键字的用途是什么以及何时应该使用它(或省略它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22162592/

相关文章:

javascript - Google 登录 API - 如何使用 PHP 将某人注销?

javascript - 如何设置 HTML 选择选项悬停和选定选项效果的样式

typescript - `is` 关键字在 typescript 中有什么作用?

javascript - 从数组中的多个对象过滤属性

javascript - 无法识别 ES5 导出函数

javascript - NestJS 有没有办法映射不同名称的字段?

javascript - 使用 JQuery 从 html 元素中删除链接

.net - 从 F# 访问名称中包含 .base 的命名空间

python - SQLAlchemy : Table primary_key - unexpected keyword argument error

javascript - ECMAScript-5 中属性 "feature"的优点是什么?