有意思的For循环

话不多说,直接上代码 

 for (var i = 0; i < 9; i++) {

       }

 alert(i);

 这是一个很简单的for循环,但是这一个警告框却在循环外执行,乍眼一看 觉得会弹出什么结果?

  undefined?亦或者是null? 或者是报错?或者.....

这是同事让我看的一个小例子,运行之前我觉得弹出的会是 undefined,但是我觉得这是同事给挖的坑,

在之后偷偷试了一下结果却是9(原谅我对这一点是个菜鸡),运行之后仔细想了想确实在执行for循环时,

 i= 8是满足 i<9的,所以就又执行了一次i++;以至于在循环外打印最终的i值就是9

时间: 2025-01-14 10:19:51

有意思的For循环的相关文章

Python基础总结之第八天开始【while循环以及for循环,循环嵌套等循环相关的知识点】(新手可相互督促)

ennnnn,年薪20万的梦想是不是又进了一步: 循环,什么是循环,循环就是电池有电,手机屏幕可以循环一整天的使用:循环就是地球不毁灭,太阳日复一日的出现...... 不接受反驳,谢谢!~ 只要条件满足,就不断循环,条件不满足,退出循环... while 循环语法结构:(什么是条件判断?请看随笔目录,if条件判断相关笔记) 1 while 条件表达式: #条件成立,执行下面的循环体代码2 循环体 我们开始一个简单的例子:(假若条件一直成立,那么会一直循环,就是所谓的,根本停不下来的,死循环) 1

python系列2

目录 Python数据类型 python的运算符 Python的循环与判断语句 python练习 Python作业 一.  Python的数据类型 1. 整型(int) <1>.  赋值 1 num1 = 123 # 变量名 = 数字 2 num2 = 456 3 num3 = int(123) # 另外一种赋值的方法 4 print(num1) 5 print(num2)6 print(num3) <2>.  int类的额外功能 def bit_length(self): # r

C#学习笔记第一发---C#基础(类型和基础语法)

首先,数据类型分为值类型和引用数据类型以及指针类型(暂不涉及):值类型是指直接储存在内存的栈上面,引用类型则在栈上储存一个引用,在堆上储存具体的值. 值类型分为内建类型和用户可以自定义的struct类型.enum类型,这些类继承于system.ValueType类,而system.ValueType继承于system.Object类,Object类是所有类的基类. 值类型如int.bool都是通常使用的别名,正式名为system.Int32.system.Boolean. 另外可以用var来命名

在不开启事件循环的线程中使用QTimer(QThread::run函数自带事件循环,在构造函数里创建线程,是一种很有意思的线程用法) good

引入 QTimer是Qt自带的定时器类,QTimer运行时是依赖于事件循环的,简单来说,在一个不开启事件循环(未调用exec() )的线程中,QTimer是无法使用的.通过分析Qt源码可发现,调用QTimer::start()后仅仅是在系统的定时器向量表中添加了一个定时器对象,但定时器并没有真正开启.定时器的开启需要通过processEvent()开始的一系列调用后才会真正得开启,这个过程中会处理定时器向量表中所有的定时器对象.那么实际exec()中也是在不断地调用processEvent()方

计算复杂性读书笔记(二): 论怎么把一个证明写得有意思

比特猪 [email protected] 首先是版权声明,版权归属为:东南大学知识科学与工程实验室(kselab@seu ).其实这个系列笔记实在是因为自己太笨,没法了解很多东西,觉得有必要写下来梳理一下.所以不管大家看着有帮助也好,嗤之以鼻也好,实在是没有必要转载.虽然文拙笔劣,不过毕竟也是大冬天花时间一个个字敲下来的,所以如果非要转载,我也希望注明出处.如能致此,感戴莫名! 2.1. 补充 文蛤时期,伟大的先辈发明出了一种优雅活泼奔放的喷人方法:文字皮逗.大家伙儿看谁比自己牛逼,就买横幅写

OC自动释放池在for循环中的性能测试

发现一个有意思的测试结果. @autoreleasepool 放在for 循环外面,即所有循环结束后才释放里面的延迟对象:而放在里面的话,也就是说每次循环都立即释放. 这样就保证了for循环时不会突然内存爆表. 但是,性能居然....是放在里面的好点,附上代码,可以亲测玩玩. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"start"); CFAbsoluteTime start =

delphi.thread.线程循环执行体结构

线程话题太大,又都是些坑,不知从哪方面讲起,所以,想一出是一出了. 不管怎样,我们从开始使用D,不管有没有用线程,其实它已经帮我们做了一个最完整的线程执行处理:Application.Run. 这行App.Run,在dpr,想来各位都经常能够看到,如果跟踪下去,我们就会发现,它其实就是一个最完整的线程执行体的结构了: 我将里面一些代码删除掉了,再将HandleMessage的代码复制过来,然后,代码如下: procedure TApplication.Run; var Msg: TMsg; be

shell脚本进阶之循环判断

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; font-size: 14.0pt; font-family: 等线 } h1 { margin-top: 15.6pt; margin-right: 0cm; margin-left: 0cm; margin-bottom: .0001pt; text-align: justify; line-he

循环的妙用

当我们在学习程序设计的过程中,我们会发现有很多重复的步骤,变化的仅仅是当中的某一个变量,这就要引入我们的一个重要的知识--"循环".循环就是重复执行语句,这是个很方便又很有意思的技术,可以重复操作任意多次,而不必编写相同的代码.很多复杂的计算,我们可以通过循环交给电脑,仅仅两行代码,坐享其成,何乐而不为呢. 目前,在面向过程的程序设计时,循环起到了核心的作用,大部分的问题都需要通过循环解决,使用比较频繁的便是while循环和for循环.在使用循环的过程中,需要有很强的逻辑能力,对每个变