首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我不能将空代码块分配给Javascript中的变量?

为什么我不能将空代码块分配给Javascript中的变量?
EN

Stack Overflow用户
提问于 2019-03-05 04:25:11
回答 1查看 154关注 0票数 2

我正在使用V8 (通过Chrome)来测试它。在Javascript中,代码块的计算结果是代码块中最后一个值的值。我想看看如果我将一个变量赋给一个空代码块,会发生什么。

代码语言:javascript
复制
// example of code block evaluating to last value in the block
> {1;2;3};
3

// This won't work, it returns an empty object,
// not an empty code block.
> var emptyBlock = {};
> emptyBlock;
Object object

最后,我想出了如何指定我想要的是一个空代码块,而不是一个空对象。

代码语言:javascript
复制
> {;}
undefined

> {;;}
undefined

> {;;;;;}
undefined

好的,很漂亮,所以一个空代码块解析为undefined。对吗?

不完全同意!

代码语言:javascript
复制
> var emptyBlock = {;}
Uncaught SyntaxError: Unexpected token ';'

?!现在还不清楚这个空代码块是真的返回undefined,还是其他什么东西在起作用。如果它只是计算为undefined,我们会期望上面的赋值工作。

有人知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-05 04:31:12

最终,我想出了如何指定我想要一个空代码块,而不是一个空对象。

这在很大程度上是由 {之前的决定的,而不是在它之后。

因为前面有一个=,所以您所处的上下文中{是object文字的开始。在需要属性名称的位置不允许使用;,因此代码出错。

你不能分配块。它们不是值,它们是代码结构的一部分。

,这两种说法似乎都是错误的。codeBlockValue codeBlockValue = {1;2;3};例如,它可以很好地工作,并将var设置为3

不,它不是:

代码语言:javascript
复制
var codeBlockValue = {1;2;3}; 

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54991006

复制
相关文章

相似问题

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