变量中大括号和引号之间的区别

时间:2014-03-29 15:04:17

标签: javascript arrays angularjs variables curly-braces

我正在尝试为变量添加一个初始空值,我不明白这些之间的差异:

var question = '';

var question = {};

为变量定义空值时使用大括号和引号有什么区别?

3 个答案:

答案 0 :(得分:5)

''string{}object

这两个都是 literal 语法的示例。这意味着您可以定义一个初始化其值的数据类型。这是在JavaScript中定义数据的最常用方法。


第一个创建一个没有字符的string类型。引号只是表示字符串打开和关闭的语法的一部分。它们不是结果数据的一部分。

字符串是不可变的,因此不可能在您创建的字符串中添加字符,但您可以用该变量保存的新字符串替换它。

使用字符初始化的字符串示例为:

var question = "Who is John Galt?";

结果字符串包含引号之间的字符。同样,引号不是结果的一部分。它们仅表示用于创建字符串的文字语法。


第二个创建一个不包含成员的object类型。同样,花括号只是表示文字语法的开头和结尾。它们与对象中包含的实际数据无关。

一个对象可以突变(除了在某些现在不相关的情况下)。因此,您可以通过以各种方式添加属性来更新此对象的成员。

使用成员初始化的对象的示例是:

var question = {
    firstName: "John",
    lastName: "Galt"
};

生成的对象拥有两个成员并继承了一些成员。成员是键/值对,其中键最终表示为字符串(虽然这里我们使用属性标识符语法,表示有效键的子集),其中值可以是任何JavaScript数据类型(在本例中,我使用字符串文字语法来定义字符串值)

答案 1 :(得分:0)

当你说初始空时你需要知道类型。 虽然javascript松散耦合,但您应该了解基本类型。

var a; <- undefined no type
var a = {} <- defined object "empty" of defined members
var a = [] <- defined array "empty" of defined elements
var a = 1 <- defined integer
var a = '' < defined "empty" string

答案 2 :(得分:-2)

这是定义变量question,其中包含空字符串。 (正如dsfq在评论中指出的那样)

var question = '';

这是使用question

定义对象{}
var question = {};