Javascript ES 6计算语句持有者
我不确定这在ES5中是否已经可行,如果不可行,ES6中是否有任何变化;有没有办法将复合语句分配给对象 这将有助于它可以在JavaScript需要一条语句的任何地方使用 比如: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
我不确定我是否理解这个问题,但我想我理解。你是说一种将这些语句分组的方法,这样你就可以按顺序执行它们,而不必每次都重复它们?这只是一个函数
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
avar
,而x
不是呢?那么,是的,函数在ES5中已经是可能的,如果你问一个显而易见的问题:-)为什么cx
avar
不是呢?那么是的,函数在ES5中已经是可能的,如果你问的是明显的:-)这很有趣,但我不认为它真的回答了这个问题。这很有趣,但我不认为它真的回答了这个问题。