js循环打印出0~9

js循环打印出0~9,我们第一时间想到的就是for循环。

方法一:最简单的方法就是for循环直接打印:

for (var i = 0; i < 10; i++) {
  console.log(i);
}

结果:

 

 

下面早看这样一段代码:

for (var i = 0; i < 10; i++) {
      setTimeout(() => {
        console.log(i);
      }, 100 * i);
   }

大家想下,打印的结果是什么?

结果:

 为什么不是我们想象的打印10个数呢???

原因:我们都知道,js有两种类型的回调函数:

同步回调:立即执行,完全执行了才结束,不会放到js的回调队列里。

例子:数组遍历相关的回调函数 / promise的excutor函数

异步回调:不会立即执行,会放到回调队列中将来执行。

例子:定时器回调 / ajax回调 / promise的成功或失败的回调

上述方法,setTimeout在若干秒后执行一个函数,他是要在for循环之后的,而for循环执行后i的值为10,所以当setTimeout中的回调函数执行时,i的值为10,所以打印10次10。

方法二:那我们如何在不修改for循环的前提下,实现我们期待的结果呢?立即执行函数

for (var i = 0; i < 10; i++) {
     (function(i) {
      setTimeout(() => {
        console.log(i);
      }, 100 * i);
     })(i)
   }

结果:

 方法三:let声明:

for (let i = 0; i < 10; i++) {
      setTimeout(() => {
        console.log(i);
      }, 100 * i);
   }

结果:

<think>好的,用户想用for循环打印1到20的代码示例。我需要先确定他们使用的编程语言。问题里没有明确提到,但根据用户提供的引用内容,有Python的例子(比如快速排序),还有提到其他语言如CoffeeScript,但用户最后的请求可能更倾向于常见的语言,比如Python。 首先,我应该提供Python的示例,因为之前的例子都是Python,而且用户可能更熟悉。Python的for循环通常使用range函数,这里需要注意范围是否包含20。在Python中,range(1,20)是不包括20的,所以要写成range(1,21)才能包括20。 然后,检查是否有其他语言的例子可能被需要。但用户的问题中没有提到其他语言,所以可能只需Python。不过,考虑到引用[4]提到了CoffeeScript的解构赋值,可能需要考虑是否用户对JavaScript或其他语言感兴趣。但根据示例中的代码是Python,还是以Python为主。 接下来,我需要确保代码正确。例如,在Python中,循环结构是for i in range(1,21): print(i)。这样会正确输出1到20每个数字占一行。 另外,用户可能需要代码的详细说明,比如循环如何工作,range的参数是什么。所以应该在回答中解释range(1,21)的原因,即结束值是不包含的,所以需要加1。 还要注意格式,根据系统级指令,代码块需要用```python包裹,并且行内数学表达式用$符号。但这里代码示例不涉及数学公式,所以可能不需要。 最后,生成相关问题。需要考虑用户可能的后续问题,比如如何倒序打印、如何处理其他范围、如何存储结果到列表等。这些问题可以帮助用户进一步学习循环的应用。 检查引用内容是否有相关部分。引用[1]提到了数字的最后两位的处理,但和循环无关。引用[3]提到了导入模块,可能和循环无关。所以可能不需要引用这些内容。但根据用户的问题,直接回答代码示例即可,不需要引用。 总结:提供Python的for循环示例,解释range的参数,给代码,并生成相关问题。</think>### 使用for循环打印1到20的代码实现 #### Python实现 在Python中,可以通过`range()`函数生成指定范围的整数序列,结合`for`循环实现: ```python for num in range(1, 21): # range的结束参数是exclusive,因此需设置为21 print(num) ``` **说明:** - `range(1, 21)`生成1到20的整数序列(包含1和20),因为`range`的结束参数是**不包含**的 - 循环变量`num`依次取序列中的每个值 - `print(num)`输出当前数值 #### JavaScript实现 若需其他语言实现,JavaScript示例如下: ```javascript for (let i = 1; i <= 20; i++) { console.log(i); } ``` #### 执行结果 两种语言都会输出: ``` 1 2 3 ... 20 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值