通过每次传递相同的数字,打印由传递的参数增加的数字

  • 本文关键字:数字 增加 打印 参数 javascript
  • 更新时间 :
  • 英文 :

function get_increased(number)
{   
console.log(number)
number += number
}

第一次调用get_increated(1(\输出1|所需输出1

第二次调用get_increated(1(\输出1|所需输出2

第三次调用get_increated(1(\outputs 1|所需输出3等等…

Condition:在声明函数时,不设置函数外的任何变量。

您需要在函数之外设置一个变量来保存新值。另外,您需要一个不同的变量作为增量值传递。

number = 0;
function get_increased(inc) {
number += inc
}
get_increased(1);
console.log(number);
get_increased(1);
console.log(number);

正如@VLAZ所说,保持数字的唯一方法是为其分配一个变量。这不是最佳实践,但我在窗口全局变量中分配了结果。

function get_increased(number) {   
console.log('number: ', number)
window._number = window._number ? window._number + number : number
return window._number
}

console.log(get_increased(1))
console.log(get_increased(2))
console.log(get_increased(3))

为了做到这一点,您需要将值保存在其他地方。典型的图案是这样的:

function tally (startingNumber) {
console.log(startingNumber);
return function (number) {
startingNumber += number;
console.log(startingNumber);
}
}

var tally1 = tally(1);
tally1(1);
tally1(1);
tally1(1);
var tally2 = tally(3);
tally2(1);
tally2(2);
tally2(3);

"number"没有按预期递增。

给定的代码中有两个主要问题。请参阅下面更改的代码,了解3种不同的场景

  1. Javascript通过值而不是引用传递数字。因此,对get_increated的初始调用相当于get_increred(1((我假设您在下面的示例中从数字=1开始(。然后,函数使用一个名为number的变量,但它是该函数的局部变量,不是最初声明的var数字。它将其输出到控制台,然后将其自身的值增加(恰好为1(,但该版本的变量号不存在于运行get_increated的实例之外

增加一个称为number的变量,并使其保持到下一次调用get_increated,以及下一次和下一次。。。。我们可以在函数外声明它,并让函数使用它(获取它的值和更新它的值(,请参阅下面代码中的第二组脚本。

  1. 然而,即使我们使get_increated使用这个更持久的变量号,行

    number+=数字

将数字的值添加到自身-每次都将值加倍,因此我们在控制台中看到1 2 4 8等。log要将值增加一,代码为

number +=1

其含义与相同

number = number + 1

以下是试用的3套脚本

<script>
var number=1;
for (var i=0;i<5;i++) {
get_increased(number);
}
function get_increased(number)
{   
console.log(number);
number += number; //number is local to the get_increased function
}
</script>
<script>
var number=1;
for (var j=0;j<5;j++) {
get_increased();
}
function get_increased()
{   
console.log(number);
number += number;//we are using the number defined above but the number is added to itself - giving a doubling each time
}
</script>
<script>
var number=1;
for (var k=0;k<5;k++) {
get_increased();
}
function get_increased()
{   
console.log(number);
number += 1;//this gives the result asked for
}
</script>

最新更新