我应该把“;var”;以便获得特定的值

where should I put "var" in order to get specifc values

本文关键字:var 我应该      更新时间:2023-09-26

这是一个代码片段任务-您应该在其中输入"var"(任意数量),以便在第一个警报中得到17,在第二个警报中获得21。我想我以前遇到过这个问题,但还是没能解决这个问题。

a = 3;
b = 2;
function line(x) {
    a = 5;
    b = 4;
    return a*x + b
}
//b should be 17
b = line( a ) - b;
alert( b );
//c should be 21
c = line ( a ) + b;
alert(c);

如果你把"var"放在b前面的函数中,它会提醒"17"。下一个警报给我们46,因为函数返回了新的b值。

function line(x) {
     a = 5;
    var b = 4;
    return a*x + b
}

这就是任务的来源:

http://www.codecademy.com/courses/javascript-for-jquery/1?curriculum_id=4fc3018f74258b0003001f0f/#/练习/3

完全按照给定的方式使用给定的内容是不可能的。

我的意思是,如果呼叫:

c = line(a) + b;

取决于b的值,该值是处的赋值

b = line(a) - b;

那么,让a成为一个非常小的数字,或者让b成为一个显著大的负数,都是100%不可能的。

因此,我认为它们应该是两张独立的支票。

最好的情况是,如果我们试图包含b=17

a = 3;
3 * 5 = 15 + 4 = 19 + 4 = 23;

这是你将得到的最小的,假设你背靠背跑两个。即使你这样做,你也不会在第一次跑步时得到b = line(a) - b = 17。。。

如果是写的:

c = line(a) - b;
d = line(a) + b;

然后你可以连续运行这两个程序,并得到预期的结果。

或者你可以运行:

var a = 3,
    b = 2;
function line (x) {
    var a = 5,
        b = 4;
    return a*x + b;
}
b = line(a) - b;

得到17分。

然后你可以运行:

var a = 3,
    b = 2;
function line (x) {
    var a = 5,
        b = 4;
    return a*x + b;
}
c = line(a) + b;

(即:使用不同的发起者进行完全相同的设置,并且没有上次调用返回时保存的b值),并获得所需的结果。

但是,不可能一个接一个地运行它们,并期望它们都能工作,而不对代码执行任何操作,只添加一个var或四个。

如果你想保持一致性,就保持你的函数是这样的。在a和b之前使用"var"将使它们成为函数块和该调用的本地值。否则,它们将引用全局变量。

function line(x) {
    var a = 5;
    var b = 4;
    return a*x + b
}