我试图为变量添加一个初始的空值,但我不理解其中的不同之处:
var question = '';
var question = {};在定义变量的空值时,使用Braces和引号有什么区别?
发布于 2014-03-29 15:07:09
''是字符串。{}是对象。
这两个都是字面语法的例子。这意味着您可以定义值初始化的数据类型。这是在JavaScript中定义数据的最常用方法。
第一个创建没有字符的string类型。引号只是表示字符串开始和结束的语法的一部分。它们不是结果数据的一部分。
字符串是不可变的,因此不可能将字符添加到您创建的字符串中,尽管可以用该变量持有的新字符串替换它。
使用字符初始化的字符串示例如下:
var question = "Who is John Galt?";得到的字符串包含引号之间的字符。同样,引号不是结果的一部分。它们只是表示用于创建字符串的字面语法。
第二个创建不包含任何成员的object类型。同样,大括号只是表示文字语法的开始和结束。它们与对象中包含的实际数据无关。
可以对对象进行变异(除了目前不相关的某些情况)。因此,您可以通过各种方式添加属性来更新此对象的成员。
使用成员初始化的对象的示例如下:
var question = {
firstName: "John",
lastName: "Galt"
};结果对象拥有两个成员,并继承了几个成员。成员是键/值对,其中键最终表示为字符串(尽管这里我们使用了属性标识符语法,它表示有效键的子集),并且值可以是任何JavaScript数据类型(在本例中,我使用字符串字面语法来定义字符串值)。
发布于 2014-03-29 15:14:51
当你说初始空的时候,你需要知道类型。尽管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发布于 2014-03-29 15:05:10
这是定义变量question,它包含空字符串。(如dsfq在评论中所指出)
var question = '';这是用question定义一个{}对象
var question = {};https://stackoverflow.com/questions/22732725
复制相似问题