首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量中Braces和引号之间的差异

变量中Braces和引号之间的差异
EN

Stack Overflow用户
提问于 2014-03-29 15:04:17
回答 3查看 181关注 0票数 0

我试图为变量添加一个初始的空值,但我不理解其中的不同之处:

代码语言:javascript
复制
var question = '';

var question = {};

在定义变量的空值时,使用Braces和引号有什么区别?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-29 15:07:09

''字符串{}对象

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

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

字符串是不可变的,因此不可能将字符添加到您创建的字符串中,尽管可以用该变量持有的新字符串替换它。

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

代码语言:javascript
复制
var question = "Who is John Galt?";

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

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

可以对对象进行变异(除了目前不相关的某些情况)。因此,您可以通过各种方式添加属性来更新此对象的成员。

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

代码语言:javascript
复制
var question = {
    firstName: "John",
    lastName: "Galt"
};

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

票数 6
EN

Stack Overflow用户

发布于 2014-03-29 15:14:51

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

代码语言: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
票数 0
EN

Stack Overflow用户

发布于 2014-03-29 15:05:10

这是定义变量question,它包含空字符串。(如dsfq在评论中所指出)

代码语言:javascript
复制
var question = '';

这是用question定义一个{}对象

代码语言:javascript
复制
var question = {};
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22732725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档