Javascript ES 6计算语句持有者

Javascript ES 6计算语句持有者,javascript,ecmascript-6,Javascript,Ecmascript 6,我不确定这在ES5中是否已经可行,如果不可行,ES6中是否有任何变化;有没有办法将复合语句分配给对象 这将有助于它可以在JavaScript需要一条语句的任何地方使用 比如: 我不确定我是否理解这个问题,但我想我理解。你是说一种将这些语句分组的方法,这样你就可以按顺序执行它们,而不必每次都重复它们?这只是一个函数 var leftValue = function ( ) { var x = Math.PI; var cx = Math.cos(x); alert("cos

我不确定这在ES5中是否已经可行,如果不可行,ES6中是否有任何变化;有没有办法将复合语句分配给对象

这将有助于它可以在JavaScript需要一条语句的任何地方使用

比如:


我不确定我是否理解这个问题,但我想我理解。你是说一种将这些语句分组的方法,这样你就可以按顺序执行它们,而不必每次都重复它们?这只是一个函数

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();

我不确定我是否理解这个问题,但我想我理解。你是说一种将这些语句分组的方法,这样你就可以按顺序执行它们,而不必每次都重复它们?这只是一个函数

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();

是的,您可以在js中定义复合语句,但它们不能返回值,因此您不能将它们分配给变量或像函数一样传递它们

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();
它们的唯一用例是可以像循环一样中断它们(或类似于函数中的
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);
}
leftValue:{
设x=Math.random();//块范围
var cx=Math.cos(x*Math.PI);//函数范围
如果(x<.5)断开左值;
console.log('in',x,cx);
}
试一试{
console.log('out',x,cx);
}捕捉(错误){
console.log('catched',err,cx);
}

是的,您可以在js中定义复合语句,但它们不能返回值,因此您不能将它们赋给变量或像函数一样传递它们

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();
它们的唯一用例是可以像循环一样中断它们(或类似于函数中的
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);
}
leftValue:{
设x=Math.random();//块范围
var cx=Math.cos(x*Math.PI);//函数范围
如果(x<.5)断开左值;
console.log('in',x,cx);
}
试一试{
console.log('out',x,cx);
}捕捉(错误){
console.log('catched',err,cx);
}

leftvalue的预期结果是什么?你所说的“复合语句”是什么意思?听起来你要求的是带有
let
变量的块或IEFE。我想你想要的是“do表达式”,您正在寻找的宏是哪个?对于
leftvalue
的预期结果是什么?您所说的“复合语句”是什么意思?听起来您要求的是带有
let
变量的块或IEFE。我想您想要的是“do表达式”,你在寻找宏吗?为什么
cx
a
var
,而
x
不是呢?那么,是的,函数在ES5中已经是可能的,如果你问一个显而易见的问题:-)为什么
cx
a
var
不是呢?那么是的,函数在ES5中已经是可能的,如果你问的是明显的:-)这很有趣,但我不认为它真的回答了这个问题。这很有趣,但我不认为它真的回答了这个问题。