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.

var关键字在JavaScript中的具体功能是什么,它们之间的区别是什么

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

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

?

When would you use either one, 和 why/what does it do?

推荐答案

如果您在全局范围内,则没有太大区别.阅读Kangax's答案以获得解释

如果您在函数中,则100将创建一个局部变量,"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
    }())
}

如果你没有做作业(job),那么你需要使用var:

var x; // Declare x

Javascript相关问答推荐

React native在不首次加载时渲染的挂钩比上一次渲染期间渲染的挂钩更多

我可以在useState中调用函数并使用其数据吗

如何计算数组子级的深度- Vue.js

Node.JS ws包中是否有Webocket的错误代码列表?

二维数组,过滤并返回带有索引而不是值的新数组

导入图像与内联包含它们NextJS

Vue-Router渲染组件但不更改网址

如何制作删除按钮以从列表中删除该项目所属的项目?

Mongodb拥有5亿个文档,我想根据JavaScript驱动程序中的两个字段使用regEx进行搜索,而不是模式

无法将nPM simplex-noise包导入在JS项目中工作

获取加载失败:获取[.]添加时try 将文档添加到Firerestore,Nuxt 3

如何在不分配整个数组的情况下修改包含数组的行为主体?

Redux查询多个数据库Api reducerPath&

自定义高图中的x轴标签序列

如何从调整大小/zoom 的SVG路径定义新的d属性?""

如何从HTML对话框中检索单选项组的值?

在数组中查找重叠对象并仅返回那些重叠对象

在Odoo中如何以编程方式在POS中添加产品

Phaser3 preFX addGlow不支持zoom

如何使用[ModelJSON,ArrayBuffer]调用tf.loadGraphModelSync