我正在尝试为变量添加一个初始空值,我不明白这些之间的差异:
var question = '';
var question = {};
为变量定义空值时使用大括号和引号有什么区别?
答案 0 :(得分:5)
这两个都是 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 = {};