当左花括号{
在新行上时,test()
返回undefined
,并且警报中显示“ no-it break:undefined”。
function test()
{
return
{ /* <--- curly brace on new line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}
当花括号与处于同一行时return
,test()
将返回一个对象,并警告“奇妙”。
function test()
{
return { /* <---- curly brace on same line */
javascript: "fantastic"
};
}
var r = test();
try {
alert(r.javascript); // does this work...?
} catch (e) {
alert('no - it broke: ' + typeof r);
}
这是JavaScript的陷阱之一:自动分号插入。不以分号结尾但可能是语句结尾的行会自动终止,因此您的第一个示例实际上是这样的:
function test()
{
return; // <- notice the inserted semicolon
{
javascript: "fantastic"
};
}
在第二个示例中,您返回一个对象(由花括号构建),该对象的属性javascript
及其值为"fantastic"
,实际上与此相同:
function test() {
var myObject = new Object();
myObject.javascript = "fantastic";
return myObject;
}
问题内容: 真正想知道但从未发现的是PHP中的快捷方式。 我目前正在用一个循环在一个函数内编码一个函数。我试图省略花括号,就像您在if / else控制结构中所做的那样,它可以正常工作。没有错误。 现在,我尝试以相同的方式使用它,但在其中放置了一个if / else块。再次,工作,没有错误。 然后,我以为“这为什么起作用?” 省略了分号。还在工作。因此,我尝试在ifeach循环中使用if / el
问题内容: 而且我仍然无法理解花括号的工作原理,特别是由于诸如简单程序这样的页面: http://wiki.python.org/moin/SimplePrograms 在各处使用大括号。我了解方括号和规则的圆括号,但是我不知道“定义字典”的含义或它们应该代表的含义。 问题答案: Python中使用“大括号”来定义字典。字典是一种将一个值映射到另一个值的数据结构,就像英语词典如何将单词映射到其定义
问题内容: 不知道这是否是Mozilla特定的JS语法,但是我经常发现以这种方式声明变量,例如,在附加SDK docs中: 并在各种Chrome Javascript中(使用代替的语句), 我发现这很令人困惑,但即使在MDN上,我也找不到有关这两种语法的任何文档。 问题答案: 它们都是JavaScript 1.7的功能。第一个是block-level variables: : 允许您声明变量,将其
问题内容: 为什么每个人都告诉我编写这样的代码是一种不好的做法? 我省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 您还可以获得链接usings在一起的额外好处,而不必缩进一百万次。 花括号的最常见参数涉及维护编程,以及在原始if语句及其预期结果之间插入代码会引起的问题: 问题: 想要使用该语言提供的更紧凑的语法是错误的吗?设计这些语言的人很聪明,
我有一个字符串: 我想匹配花括号外的所有逗号。 我想要的输出是: 我尝试了: 但输出不同: 谢谢你。
问题内容: 我在jQuery文件中找到了这个: 花括号做什么? 问题答案: 在您的情况下,这是一个传递给CSS函数的对象。 在这里你也可以使用 这是物体的另一个例子