我不确定这在ES5中是否已经可行,如果没有,ES6中是否有任何更改;是否有任何方法将复合语句分配给thing
这将有助于它可以在JavaScript期望的单一语句的任何地方使用。
像这样:
var leftValue = {
x = Math.PI;
cx = Math.cos(x);
alert("cos(" + x + ") = " + cx);
}
//it wouldn't work发布于 2016-02-02 00:44:18
是的,您可以在js中定义复合语句,但它们不能返回值,因此不能将它们赋值给变量,也不能像传递函数一样传递它们。
它们的唯一用例是有可能像循环(或类似于函数中的return; )那样中断它们,或者从ES6到这个块的变量范围。
leftValue: {
let x = Math.random(); //block scope
var cx = Math.cos(x*Math.PI); //function scope
if(x < .5) break leftValue;
console.log('inside', x, cx);
}
try {
console.log('outside', x , cx);
}catch(err){
console.log('catched', err, cx);
}发布于 2016-02-02 00:32:52
我不确定我是否理解这个问题,但我想我理解。您的意思是对这些语句进行分组,这样您就可以按照顺序执行它们,而不必每次重复它们了吗?那只是个功能。
var leftValue = function ( ) {
var x = Math.PI;
var cx = Math.cos(x);
alert("cos(" + x + ") = " + cx);
};
// Execute those three statements
leftValue();
// Execute them all again
leftValue();https://stackoverflow.com/questions/35142990
复制相似问题