当前位置: 首页 > 面试题库 >

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

顾淳
2023-03-14
问题内容

注意 :从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;

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


问题答案:

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

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


 类似资料:
  • 问题内容: Java中的接口类似于类,但是接口的主体只能包含 抽象方法 和字段(常量)。 最近,我看到一个问题,看起来像这样 根据接口定义, 仅 允许 使用抽象方法 。为什么它允许我编译以上代码?关键字是什么? 另一方面,当我尝试编写下面的代码时,它说 代替 谁能告诉我关键字的目的?只能在接口内部使用吗?与(无访问修饰符)有什么区别? 问题答案: 这是Java 8中的一项新功能,可提供一个实现。在

  • 问题内容: 我阅读了一些有关该关键字的文章,但无法弄清其正确用法。您能否告诉我在C#和Java中应该使用什么? 问题答案: 对于C#和Java,“ volatile”告诉编译器一个变量的值一定不能被缓存,因为它的值可能会在程序本身范围之外改变。然后,如果变量“超出其控制范围”更改,编译器将避免可能导致问题的任何优化。

  • 问题内容: 有哪些现实的例子可以理解断言的关键作用? 问题答案: 断言(通过assert关键字)是在Java 1.4中添加的。它们用于验证代码中不变式的正确性。切勿在生产代码中触发它们,并表示存在错误或滥用代码路径。可以在运行时通过命令上的选项将其激活,但默认情况下未启用它们。 一个例子:

  • 问题内容: 什么时候应该使用Apache Commons的Validate.isTrue,什么时候应该只使用’assert’关键字? 问题答案: 可以断言(实际上通常是断言),因此,例如,它们对于验证用户输入没有用。

  • 问题内容: 什么时候需要在Java中使用关键字。我知道您在创建这样的对象实例时应该使用它: 有时在代码中,我注意到没有使用它,我感到困惑。在这一行代码中: 为什么不这样创建AssetManager的实例: 然后将其设置为等于getAssests()? 什么时候应该使用? 谢谢! 问题答案: 首次明确创建对象时,请使用new关键字。然后,不需要使用新的getter方法获取对象,因为该对象已存在于内存

  • SwiftUI教程使用关键字指示可变UI状态: 它提供了以下总结: 状态是一个值或一组值,可以随时间变化,并影响视图的行为、内容或布局。使用具有@State属性的属性将状态添加到视图。 这个关键词到底是什么意思? 如何改变一个变量导致视图被重新计算? 其他变量如何在getter中不可变?